diff --git a/log/zap/filter_core.go b/log/zap/filter_core.go index 5d984413ec606ad10308c8a285e0fd425dabc65b..1c6099e6baebacfed5d6bc21e844673d42d42534 100644 --- a/log/zap/filter_core.go +++ b/log/zap/filter_core.go @@ -34,6 +34,19 @@ type filterCore struct { fields []zap.Field } +// RegisterFilters - добавить фильтры, которые будут применяться при записи лога (вызове `core.Write`) +// Метод `core.Write` будет вызван только в случае, когда результат всех фильтров `true` +// +// Обратить внимание, фильтр не применяется к полям, которые были добавлены в `core` через вызов `core.With` +// до вызова RegisterFilters. Пример: +// +// l, _ := zap.NewDevelopment() +// core := l.Core().With([]zapcore.Field{zap.Int("a", 5)}) +// core = RegisterFilters(core, HasField(zap.Int("a", 5))) +// +// logger := zap.New(core) +// logger.Info("Test log") // НЕ будет записан +// logger.Info("Test log", zap.Int("a", 5)) // будет записан func RegisterFilters(core zapcore.Core, filters ...FilterFunc) zapcore.Core { return &filterCore{ Core: core,