From 188580161809db2238e9b7f71f0d8d102db5cff4 Mon Sep 17 00:00:00 2001 From: Semyon Krestyaninov <ensiouel@gmail.com> Date: Tue, 20 Feb 2024 10:58:29 +0300 Subject: [PATCH] refactor ContainsChannels and Channel field --- zap/channels.go | 7 ++----- zap/field.go | 13 +++++++++++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/zap/channels.go b/zap/channels.go index 3664f6ad..92b3d823 100644 --- a/zap/channels.go +++ b/zap/channels.go @@ -1,8 +1,6 @@ package zap import ( - "strings" - "git.perx.ru/perxis/perxis-go/pkg/data" "go.uber.org/zap/zapcore" ) @@ -18,9 +16,8 @@ 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.StringType { - list := strings.Split(f.String, ",") - for _, v := range list { + if f.Key == channelKey && f.Type == zapcore.ArrayMarshalerType { + for _, v := range f.Interface.(stringArray) { if data.Contains(v, channels) { return true } diff --git a/zap/field.go b/zap/field.go index a0c56f71..60a56235 100644 --- a/zap/field.go +++ b/zap/field.go @@ -2,16 +2,25 @@ package zap import ( "context" - "strings" "git.perx.ru/perxis/perxis-go/id" _ "git.perx.ru/perxis/perxis-go/id/system" // регистрируем обработчики для системных объектов "git.perx.ru/perxis/perxis-go/pkg/auth" "go.uber.org/zap" + "go.uber.org/zap/zapcore" ) +type stringArray []string + +func (ss stringArray) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range ss { + arr.AppendString(ss[i]) + } + return nil +} + func Channels(channels ...string) zap.Field { - return zap.String(channelKey, strings.Join(channels, ",")) + return zap.Array(channelKey, stringArray(channels)) } func Category(category string) zap.Field { -- GitLab