From 63f97b51f7f70c454a74f1ec42d835f67b5e4325 Mon Sep 17 00:00:00 2001 From: Semyon Krestyaninov <ensiouel@gmail.com> Date: Wed, 28 Feb 2024 14:54:11 +0300 Subject: [PATCH] fix tests --- logs/zap/core.go | 4 +++- logs/zap/entry_encoder.go | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/logs/zap/core.go b/logs/zap/core.go index a6c1c2ec..aee31e41 100644 --- a/logs/zap/core.go +++ b/logs/zap/core.go @@ -28,10 +28,12 @@ func NewCore(writeSyncer WriteSyncer) *Core { } func (core *Core) With(fields []zapcore.Field) zapcore.Core { + enc := core.enc.Clone() + enc.AddFields(fields) return &Core{ LevelEnabler: core.LevelEnabler, ws: core.ws, - enc: core.enc.With(fields), + enc: enc, } } diff --git a/logs/zap/entry_encoder.go b/logs/zap/entry_encoder.go index 62ca529d..d7db9b30 100644 --- a/logs/zap/entry_encoder.go +++ b/logs/zap/entry_encoder.go @@ -12,7 +12,8 @@ import ( ) type Encoder interface { - With([]zapcore.Field) Encoder + Clone() Encoder + AddFields([]zapcore.Field) EncodeEntry(zapcore.Entry, []zapcore.Field) (*logs.Entry, error) } @@ -24,12 +25,16 @@ func NewEntryEncoder() Encoder { return &entryEncoder{} } -func (enc *entryEncoder) With(fields []zapcore.Field) Encoder { - return enc.with(fields) +func (enc *entryEncoder) AddFields(fields []zapcore.Field) { + enc.fields = slices.Concat(enc.fields, fields) } -func (enc *entryEncoder) with(fields []zapcore.Field) *entryEncoder { - return &entryEncoder{fields: slices.Concat(enc.fields, fields)} +func (enc *entryEncoder) Clone() Encoder { + return enc.clone() +} + +func (enc *entryEncoder) clone() *entryEncoder { + return &entryEncoder{fields: slices.Clone(enc.fields)} } func (enc *entryEncoder) EncodeEntry(entry zapcore.Entry, fields []zapcore.Field) (*logs.Entry, error) { @@ -40,7 +45,8 @@ func (enc *entryEncoder) EncodeEntry(entry zapcore.Entry, fields []zapcore.Field Message: entry.Message, } - clone := enc.with(fields) + clone := enc.clone() + clone.AddFields(fields) for i := range clone.fields { switch clone.fields[i].Key { -- GitLab