File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -392,10 +392,10 @@ func (l *logrusAdapter) GetFields() map[string]any {
392392//
393393// Example usage:
394394//
395- // val := logger.GetField("user_id")
396- // if val != nil {
397- // // Handle missing field
398- // }
395+ // val := logger.GetField("user_id")
396+ // if val != nil {
397+ // // Handle missing field
398+ // }
399399func (l * logrusAdapter ) GetField (key string ) any {
400400 val , ok := l .entry .Data [key ]
401401 if ! ok {
@@ -405,6 +405,25 @@ func (l *logrusAdapter) GetField(key string) any {
405405 return val
406406}
407407
408+ // MegreFields merges fields from another Logger instance into the current log context.
409+ //
410+ // If there are overlapping keys, the values from the other Logger will overwrite the current context.
411+ //
412+ // Parameters:
413+ //
414+ // - other: the Logger instance whose fields will be merged into the current context.
415+ //
416+ // Example usage:
417+ //
418+ // logger1 := logger.WithField("user_id", 42)
419+ // logger2 := logger.WithField("session_id", "abc123")
420+ // mergedLogger := logger1.MergeFields(logger2)
421+ func (l * logrusAdapter ) MergeFields (other Logger ) Logger {
422+ return & logrusAdapter {
423+ entry : l .entry .WithFields (other .GetFields ()),
424+ }
425+ }
426+
408427// DeleteField removes a field from the current log context.
409428//
410429// Parameters:
Original file line number Diff line number Diff line change @@ -199,9 +199,20 @@ type Logger interface {
199199 //
200200 // Example usage:
201201 //
202- // fields := logger.Fields()
202+ // fields := logger.Fields()
203203 GetFields () map [string ]any
204204
205+ // MergeFields merges fields from another Logger into the current log context.
206+ //
207+ // If a field already exists, it will be overwritten by the value from the other Logger.
208+ //
209+ // Example usage:
210+ //
211+ // logger1 := logger.WithField("user_id", 42)
212+ // logger2 := logger.WithField("session_id", "abc123")
213+ // mergedLogger := logger1.MergeFields(logger2)
214+ MergeFields (other Logger ) Logger
215+
205216 // DeleteField removes a field from the current log context.
206217 //
207218 // Example usage:
@@ -215,7 +226,7 @@ type Logger interface {
215226 //
216227 // userID, ok := logger.GetField("user_id").(uint64)
217228 // if !ok {
218- // // Handle type assertion error
229+ // // Handle type assertion error
219230 // }
220231 GetField (key string ) any
221232}
You can’t perform that action at this time.
0 commit comments