| // Copyright 2022 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package slog_test |
| |
| import ( |
| "golang.org/x/exp/slog" |
| ) |
| |
| type Name struct { |
| First, Last string |
| } |
| |
| // LogValue implements slog.LogValuer. |
| // It returns a group containing the fields of |
| // the Name, so that they appear together in the log output. |
| func (n Name) LogValue() slog.Value { |
| return slog.GroupValue( |
| slog.String("first", n.First), |
| slog.String("last", n.Last)) |
| } |
| |
| func ExampleLogValuer_group() { |
| n := Name{"Perry", "Platypus"} |
| slog.Info("mission accomplished", "agent", n) |
| |
| // JSON Output would look in part like: |
| // { |
| // ... |
| // "msg": "mission accomplished", |
| // "agent": { |
| // "first": "Perry", |
| // "last": "Platypus" |
| // } |
| // } |
| } |