diff --git a/log/context.go b/log/context.go index 4767e9347..c3af05280 100644 --- a/log/context.go +++ b/log/context.go @@ -29,7 +29,7 @@ var L = logrus.NewEntry(logrus.StandardLogger()) type loggerKey struct{} // Fields type to pass to "WithFields". -type Fields = logrus.Fields +type Fields = map[string]any // Entry is a logging entry. It contains all the fields passed with // [Entry.WithFields]. It's finally logged when Trace, Debug, Info, Warn, diff --git a/log/context_test.go b/log/context_test.go index c641aea65..1b6d4a6cf 100644 --- a/log/context_test.go +++ b/log/context_test.go @@ -20,6 +20,8 @@ import ( "context" "reflect" "testing" + + "github.com/sirupsen/logrus" ) func TestLoggerContext(t *testing.T) { @@ -35,3 +37,27 @@ func TestLoggerContext(t *testing.T) { t.Errorf("should be the same: %+v, %+v", a, b) } } + +func TestCompat(t *testing.T) { + expected := Fields{ + "hello1": "world1", + "hello2": "world2", + "hello3": "world3", + } + + l := G(context.TODO()) + l = l.WithFields(logrus.Fields{"hello1": "world1"}) + l = l.WithFields(Fields{"hello2": "world2"}) + l = l.WithFields(map[string]any{"hello3": "world3"}) + if !reflect.DeepEqual(Fields(l.Data), expected) { + t.Errorf("expected: (%[1]T) %+[1]v, got: (%[2]T) %+[2]v", expected, l.Data) + } + + l2 := L + l2 = l2.WithFields(logrus.Fields{"hello1": "world1"}) + l2 = l2.WithFields(Fields{"hello2": "world2"}) + l2 = l2.WithFields(map[string]any{"hello3": "world3"}) + if !reflect.DeepEqual(Fields(l2.Data), expected) { + t.Errorf("expected: (%[1]T) %+[1]v, got: (%[2]T) %+[2]v", expected, l2.Data) + } +}