From d77d6bc13f94765bf8f88b0791c85ec6efc3652d Mon Sep 17 00:00:00 2001 From: Semyon Krestyaninov <ensiouel@gmail.com> Date: Thu, 15 Feb 2024 12:48:56 +0300 Subject: [PATCH] Revert "refactor" This reverts commit 29d881cf9099e129993fb2beb4015eb72e1874a7. --- log/zap/core.go | 33 +++++++++++++++++---------------- log/zap/field.go | 4 ++-- log/zap/field_test.go | 2 +- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/log/zap/core.go b/log/zap/core.go index ee800984..f2b220ea 100644 --- a/log/zap/core.go +++ b/log/zap/core.go @@ -57,6 +57,11 @@ func (core *Core) getEntry(entry zapcore.Entry, fields []zapcore.Field) *log.Ent fields = append(fields, core.fields...) } + enc := zapcore.NewMapObjectEncoder() + for _, field := range fields { + field.AddTo(enc) + } + ent := &log.Entry{ ID: id.GenerateNewID(), Timestamp: entry.Time, @@ -64,22 +69,18 @@ func (core *Core) getEntry(entry zapcore.Entry, fields []zapcore.Field) *log.Ent Message: entry.Message, } - for _, field := range fields { - switch field.Key { - case "category": - ent.Category = field.String - case "component": - ent.Component = field.String - case "event": - ent.Event = field.String - case "object": - ent.ObjectID = field.Interface.(*oid.ObjectId) - case "caller": - ent.CallerID = field.Interface.(*oid.ObjectId) - case "attr": - ent.Attr = field.Interface - case "tags": - ent.Tags, _ = field.Interface.([]string) + ent.Category, _ = enc.Fields["category"].(string) + ent.Component, _ = enc.Fields["component"].(string) + ent.Event, _ = enc.Fields["event"].(string) + ent.ObjectID, _ = enc.Fields["object"].(*oid.ObjectId) + ent.CallerID, _ = enc.Fields["caller"].(*oid.ObjectId) + ent.Attr = enc.Fields["attr"] + + if tags, ok := enc.Fields["tags"].([]any); ok { + for _, item := range tags { + if tag, ok := item.(string); ok { + ent.Tags = append(ent.Tags, tag) + } } } diff --git a/log/zap/field.go b/log/zap/field.go index 4410c967..acc6932d 100644 --- a/log/zap/field.go +++ b/log/zap/field.go @@ -62,12 +62,12 @@ func Attr(attr any) zap.Field { if attr == nil { return zap.Skip() } - return zap.Reflect("attr", attr) + return zap.Any("attr", attr) } func Tags(tags ...string) zap.Field { if len(tags) == 0 { return zap.Skip() } - return zap.Reflect("tags", tags) + return zap.Strings("tags", tags) } diff --git a/log/zap/field_test.go b/log/zap/field_test.go index 491984db..643506ba 100644 --- a/log/zap/field_test.go +++ b/log/zap/field_test.go @@ -173,7 +173,7 @@ func TestTags(t *testing.T) { field zap.Field want zap.Field }{ - {name: "ok", field: Tags("a", "b", "c"), want: zap.Reflect("tags", []string{"a", "b", "c"})}, + {name: "ok", field: Tags("a", "b", "c"), want: zap.Strings("tags", []string{"a", "b", "c"})}, {name: "invalid", field: Tags(nil...), want: zap.Skip()}, } -- GitLab