From bc78a7bc36c01ac24335086696443b3c3d1401d0 Mon Sep 17 00:00:00 2001 From: Semyon Krestyaninov <ensiouel@gmail.com> Date: Tue, 27 Feb 2024 16:16:01 +0300 Subject: [PATCH] refactor --- zap/filter_core.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/zap/filter_core.go b/zap/filter_core.go index dee17ba5..c513bab5 100644 --- a/zap/filter_core.go +++ b/zap/filter_core.go @@ -1,6 +1,8 @@ package zap import ( + "slices" + "go.uber.org/zap" "go.uber.org/zap/zapcore" ) @@ -51,9 +53,9 @@ type filterCore struct { filters []FilterFunc - // fields хранит контекст записей ядра, передаваемых при вызове With. + // context хранит контекст записей ядра, передаваемых при вызове With. // В методе Write передаются только поля конкретной записи, но мы также хотим учитывать поля контекста ядра. - fields []zap.Field + context []zap.Field } // WithFilters - добавить фильтры, которые будут применяться при записи лога (вызове `core.Write`) @@ -78,9 +80,9 @@ func WithFilters(core zapcore.Core, filters ...FilterFunc) zapcore.Core { func (core *filterCore) With(fields []zapcore.Field) zapcore.Core { return &filterCore{ - Core: core.Core, + Core: core.Core.With(fields), filters: core.filters, - fields: append(core.fields, fields...), + context: slices.Concat(core.context, fields), } } @@ -92,12 +94,8 @@ func (core *filterCore) Check(entry zapcore.Entry, checkedEntry *zapcore.Checked } func (core *filterCore) Write(entry zapcore.Entry, fields []zapcore.Field) error { - if len(core.fields) > 0 { - fields = append(core.fields, fields...) - } - for _, filter := range core.filters { - if !filter(entry, fields) { + if !filter(entry, slices.Concat(core.context, fields)) { return nil } } -- GitLab