]> Cypherpunks repositories - gostls13.git/commitdiff
log/slog: fix string representation of Group values
authorJonathan Amsterdam <jba@google.com>
Mon, 27 Mar 2023 13:42:22 +0000 (09:42 -0400)
committerJonathan Amsterdam <jba@google.com>
Mon, 27 Mar 2023 17:27:38 +0000 (17:27 +0000)
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 <jba@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/log/slog/value.go
src/log/slog/value_test.go

index 3a2c41e9e46d9040a2a206562189a6407e878743..b434eb368a4d22ed3512fd24f45c0e7a8a7b44fe 100644 (file)
@@ -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()))
        }
index e3c087c5c9aacb466a26fcaeafaddd7f8298fe5f..55f3100a80326f1e7e65a3caa3b8b394b386c01d 100644 (file)
@@ -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)