From d12334a61c242a2cecdd2cdb5a532a282184a3d9 Mon Sep 17 00:00:00 2001 From: Semyon Krestyaninov <ensiouel@gmail.com> Date: Thu, 15 Feb 2024 13:39:12 +0300 Subject: [PATCH] refactor --- log/zap/filter_core.go | 13 ++++++++++++- log/zap/filter_core_test.go | 20 +++++--------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/log/zap/filter_core.go b/log/zap/filter_core.go index e1049447..43e5e6bd 100644 --- a/log/zap/filter_core.go +++ b/log/zap/filter_core.go @@ -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, diff --git a/log/zap/filter_core_test.go b/log/zap/filter_core_test.go index f4e12b87..21197975 100644 --- a/log/zap/filter_core_test.go +++ b/log/zap/filter_core_test.go @@ -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) - require.NoError(t, err) - } + 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()) -- GitLab