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
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
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment