diff --git a/zap/channels.go b/zap/channels.go index 92b3d823e3aef22c30736942c0aa8931c7e19b31..097c77468e82dcc79760b1a03d6ac3eb9a92a99e 100644 --- a/zap/channels.go +++ b/zap/channels.go @@ -16,7 +16,7 @@ const ( func ContainsChannels(channels ...string) FilterFunc { return func(entry zapcore.Entry, fields []zapcore.Field) bool { for _, f := range fields { - if f.Key == channelKey && f.Type == zapcore.ArrayMarshalerType { + if f.Key == channelKey && f.Type == zapcore.SkipType { for _, v := range f.Interface.(stringArray) { if data.Contains(v, channels) { return true diff --git a/zap/field.go b/zap/field.go index 60a56235144b064b881d0705bdfe90b8c539719b..df679dc2dc84bffa1cc0826f9d0cf624fc60d22d 100644 --- a/zap/field.go +++ b/zap/field.go @@ -20,7 +20,11 @@ func (ss stringArray) MarshalLogArray(arr zapcore.ArrayEncoder) error { } func Channels(channels ...string) zap.Field { - return zap.Array(channelKey, stringArray(channels)) + return zap.Field{ + Key: channelKey, + Type: zapcore.SkipType, // используем тип zapcore.SkipType, чтобы поле игнорировалось при выводе записи + Interface: stringArray(channels), + } } func Category(category string) zap.Field {