golang.org/x/exp@v0.0.0-20240506185415-9bf2ced13842/slog/example_logvaluer_group_test.go (about) 1 // Copyright 2022 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package slog_test 6 7 import "golang.org/x/exp/slog" 8 9 type Name struct { 10 First, Last string 11 } 12 13 // LogValue implements slog.LogValuer. 14 // It returns a group containing the fields of 15 // the Name, so that they appear together in the log output. 16 func (n Name) LogValue() slog.Value { 17 return slog.GroupValue( 18 slog.String("first", n.First), 19 slog.String("last", n.Last)) 20 } 21 22 func ExampleLogValuer_group() { 23 n := Name{"Perry", "Platypus"} 24 slog.Info("mission accomplished", "agent", n) 25 26 // JSON Output would look in part like: 27 // { 28 // ... 29 // "msg": "mission accomplished", 30 // "agent": { 31 // "first": "Perry", 32 // "last": "Platypus" 33 // } 34 // } 35 }