@@ -23,8 +23,7 @@ func New(log *zerolog.Logger) Logger {
2323type loggerImpl struct {
2424 name string
2525 log * zerolog.Logger
26- fields Map
27- content * Event
26+ fields Fields
2827 callerSkip int
2928 lvl Level
3029}
@@ -35,17 +34,6 @@ func (l *loggerImpl) WithLevel(lvl Level) Logger {
3534 return log
3635}
3736
38- func (l * loggerImpl ) WithEvent (evt * Event ) Logger {
39- if evt == nil {
40- return l
41- }
42-
43- log := l .copy ()
44- log .content = mergeEvent (l .content , evt )
45-
46- return log
47- }
48-
4937func (l * loggerImpl ) WithCallerSkip (skip int ) Logger {
5038 if skip == 0 {
5139 return l
@@ -64,7 +52,7 @@ func (l *loggerImpl) nameWithCaller(name string, caller int) Logger {
6452
6553 log := l .copy ()
6654 if log .fields == nil {
67- log .fields = make (Map , 1 )
55+ log .fields = make (Fields , 1 )
6856 }
6957
7058 if log .name == "" {
@@ -81,13 +69,13 @@ func (l *loggerImpl) WithName(name string) Logger {
8169 return l .nameWithCaller (name , 0 )
8270}
8371
84- func (l * loggerImpl ) WithFields (m Map ) Logger {
72+ func (l * loggerImpl ) WithFields (m Fields ) Logger {
8573 if len (m ) == 0 {
8674 return l
8775 }
8876
8977 log := l .copy ()
90- logFields := make (Map , len (m )+ len (log .fields ))
78+ logFields := make (Fields , len (m )+ len (log .fields ))
9179 for k , v := range m {
9280 logFields [k ] = v
9381 }
@@ -197,7 +185,6 @@ func (l *loggerImpl) enabled(ctx context.Context, lvl zerolog.Level) bool {
197185func (l * loggerImpl ) copy () * loggerImpl {
198186 return & loggerImpl {
199187 log : l .log ,
200- content : cloneEvent (l .content ),
201188 fields : maps .Clone (l .fields ),
202189 lvl : l .lvl ,
203190 name : l .name ,
@@ -214,7 +201,9 @@ func (l *loggerImpl) getLog() *zerolog.Logger {
214201
215202func (l * loggerImpl ) newEvent (ctx context.Context , e * zerolog.Event ) * zerolog.Event {
216203 name := l .name
217- if m , ok := l .fields [logfields .Module ].(string ); ok {
204+ fields := l .fields
205+
206+ if m , ok := fields [logfields .Module ].(string ); ok {
218207 name = m
219208 }
220209
@@ -226,11 +215,14 @@ func (l *loggerImpl) newEvent(ctx context.Context, e *zerolog.Event) *zerolog.Ev
226215 e = e .CallerSkipFrame (l .callerSkip )
227216 }
228217
229- if len ( l . fields ) > 0 {
230- e = e . Fields ( l . fields )
218+ for k , v := range GetFieldsFromCtx ( ctx ) {
219+ fields [ k ] = v
231220 }
232221
233- e = e .Ctx (createFieldCtx (ctx , & fieldMap {name : name , fields : l .fields }))
222+ if len (fields ) > 0 {
223+ e = e .Fields (fields )
224+ }
234225
235- return mergeEvent (e , getEventFromCtx (ctx ), l .content )
226+ e = e .Ctx (createFieldCtx (ctx , & fieldMap {name : name , fields : fields }))
227+ return e
236228}
0 commit comments