Skip to content
Snippets Groups Projects
Commit d12334a6 authored by Semyon Krestyaninov's avatar Semyon Krestyaninov
Browse files

refactor

parent 1566ab34
Branches
Tags
No related merge requests found
......@@ -7,6 +7,17 @@ import (
type FilterFunc func(entry zapcore.Entry, fields []zapcore.Field) bool
func FilterField(field zapcore.Field) FilterFunc {
return func(entry zapcore.Entry, fields []zapcore.Field) bool {
for _, f := range fields {
if f.Equals(field) {
return true
}
}
return false
}
}
type filterCore struct {
zapcore.Core
......@@ -14,7 +25,7 @@ type filterCore struct {
fields []zap.Field
}
func NewFilterCore(core zapcore.Core, filters ...FilterFunc) zapcore.Core {
func RegisterFilters(core zapcore.Core, filters ...FilterFunc) zapcore.Core {
return &filterCore{
Core: core,
filters: filters,
......
......@@ -11,25 +11,15 @@ import (
func TestFilterCore_Write(t *testing.T) {
core, logs := observer.New(zapcore.InfoLevel)
core = NewFilterCore(core, func(entry zapcore.Entry, fields []zapcore.Field) bool {
enc := zapcore.NewMapObjectEncoder()
for _, field := range fields {
field.AddTo(enc)
}
check, _ := enc.Fields["check"].(bool)
return check
})
core = RegisterFilters(core, FilterField(zap.Bool("check", true)))
{
err := core.With([]zapcore.Field{zap.Bool("check", true)}).
Write(zapcore.Entry{Message: "check true"}, nil)
err := core.With([]zapcore.Field{zap.Bool("check", true)}).Write(zapcore.Entry{Message: "msg"}, nil)
require.NoError(t, err)
}
err := core.Write(zapcore.Entry{Message: "check true"}, []zapcore.Field{zap.Bool("check", true)})
err = core.Write(zapcore.Entry{Message: "msg"}, []zapcore.Field{zap.Bool("check", true)})
require.NoError(t, err)
err = core.Write(zapcore.Entry{Message: "check false"}, nil)
err = core.Write(zapcore.Entry{Message: "msg"}, nil)
require.NoError(t, err)
require.Equal(t, 2, logs.Len())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment