log: make Fields type a generic map[string]any

Decouple it from logrus, but with the same type.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2023-07-30 21:21:46 +02:00
parent 634a4a1bbf
commit 238da2c525
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C
2 changed files with 27 additions and 1 deletions

View File

@ -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,

View File

@ -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)
}
}