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

refactor

parent ebea7679
No related branches found
No related tags found
No related merge requests found
package zap package zap
import ( import (
"slices"
"go.uber.org/zap" "go.uber.org/zap"
"go.uber.org/zap/zapcore" "go.uber.org/zap/zapcore"
) )
...@@ -51,9 +53,9 @@ type filterCore struct { ...@@ -51,9 +53,9 @@ type filterCore struct {
filters []FilterFunc filters []FilterFunc
// fields хранит контекст записей ядра, передаваемых при вызове With. // context хранит контекст записей ядра, передаваемых при вызове With.
// В методе Write передаются только поля конкретной записи, но мы также хотим учитывать поля контекста ядра. // В методе Write передаются только поля конкретной записи, но мы также хотим учитывать поля контекста ядра.
fields []zap.Field context []zap.Field
} }
// WithFilters - добавить фильтры, которые будут применяться при записи лога (вызове `core.Write`) // WithFilters - добавить фильтры, которые будут применяться при записи лога (вызове `core.Write`)
...@@ -78,9 +80,9 @@ func WithFilters(core zapcore.Core, filters ...FilterFunc) zapcore.Core { ...@@ -78,9 +80,9 @@ func WithFilters(core zapcore.Core, filters ...FilterFunc) zapcore.Core {
func (core *filterCore) With(fields []zapcore.Field) zapcore.Core { func (core *filterCore) With(fields []zapcore.Field) zapcore.Core {
return &filterCore{ return &filterCore{
Core: core.Core, Core: core.Core.With(fields),
filters: core.filters, 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 ...@@ -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 { 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 { for _, filter := range core.filters {
if !filter(entry, fields) { if !filter(entry, slices.Concat(core.context, fields)) {
return nil return nil
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment