fix fmt.Stringer values in json handler

This commit is contained in:
Jared Wasinger 2023-11-22 15:00:36 +08:00
parent e411480a43
commit 31dcb3daa8

View file

@ -213,7 +213,11 @@ func builtinReplace(_ []string, attr slog.Attr, logfmt bool) slog.Attr {
attr.Value = slog.StringValue(v.Dec())
}
case fmt.Stringer:
if v == nil || (reflect.ValueOf(v).Kind() == reflect.Pointer && reflect.ValueOf(v).IsNil()) {
attr.Value = slog.StringValue("<nil>")
} else {
attr.Value = slog.StringValue(v.String())
}
}
return attr
}