From: Jonathan Amsterdam Date: Mon, 27 Mar 2023 13:42:22 +0000 (-0400) Subject: log/slog: fix string representation of Group values X-Git-Tag: go1.21rc1~1146 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=936821050800f9067215b6dbe5f6072c5a0ee975;p=gostls13.git log/slog: fix string representation of Group values Format Group values like a []Attr, rather than a *Attr. Also, use fmt.Append in Value.append. Updates #56345. Change-Id: I9db1a8ec47f8e99c1ac3225d78e152013116bff3 Reviewed-on: https://go-review.googlesource.com/c/go/+/479515 Run-TryBot: Jonathan Amsterdam Reviewed-by: Alan Donovan TryBot-Result: Gopher Robot --- diff --git a/src/log/slog/value.go b/src/log/slog/value.go index 3a2c41e9e4..b434eb368a 100644 --- a/src/log/slog/value.go +++ b/src/log/slog/value.go @@ -414,8 +414,10 @@ func (v Value) append(dst []byte) []byte { return append(dst, v.duration().String()...) case KindTime: return append(dst, v.time().String()...) - case KindAny, KindGroup, KindLogValuer: - return append(dst, fmt.Sprint(v.any)...) + case KindGroup: + return fmt.Append(dst, v.group()) + case KindAny, KindLogValuer: + return fmt.Append(dst, v.any) default: panic(fmt.Sprintf("bad kind: %s", v.Kind())) } diff --git a/src/log/slog/value_test.go b/src/log/slog/value_test.go index e3c087c5c9..55f3100a80 100644 --- a/src/log/slog/value_test.go +++ b/src/log/slog/value_test.go @@ -59,6 +59,7 @@ func TestValueString(t *testing.T) { {StringValue("foo"), "foo"}, {TimeValue(testTime), "2000-01-02 03:04:05 +0000 UTC"}, {AnyValue(time.Duration(3 * time.Second)), "3s"}, + {GroupValue(Int("a", 1), Bool("b", true)), "[a=1 b=true]"}, } { if got := test.v.String(); got != test.want { t.Errorf("%#v:\ngot %q\nwant %q", test.v, got, test.want)