diff --git a/src/log/slog/example_discard_test.go b/src/log/slog/example_discard_test.go index 3e3e37b189..7b829df181 100644 --- a/src/log/slog/example_discard_test.go +++ b/src/log/slog/example_discard_test.go @@ -6,15 +6,20 @@ package slog_test import ( "log/slog" - "log/slog/internal/slogtest" "os" ) func Example_discardHandler() { + removeTime := func(groups []string, a slog.Attr) slog.Attr { + if a.Key == slog.TimeKey && len(groups) == 0 { + return slog.Attr{} + } + return a + } // A slog.TextHandler can output log messages. logger1 := slog.New(slog.NewTextHandler( os.Stdout, - &slog.HandlerOptions{ReplaceAttr: slogtest.RemoveTime}, + &slog.HandlerOptions{ReplaceAttr: removeTime}, )) logger1.Info("message 1") diff --git a/src/log/slog/example_level_handler_test.go b/src/log/slog/example_level_handler_test.go index 1ff91d4763..97b2f3abda 100644 --- a/src/log/slog/example_level_handler_test.go +++ b/src/log/slog/example_level_handler_test.go @@ -7,7 +7,6 @@ package slog_test import ( "context" "log/slog" - "log/slog/internal/slogtest" "os" ) @@ -63,7 +62,13 @@ func (h *LevelHandler) Handler() slog.Handler { // Another typical use would be to decrease the log level (to LevelDebug, say) // during a part of the program that was suspected of containing a bug. func ExampleHandler_levelHandler() { - th := slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{ReplaceAttr: slogtest.RemoveTime}) + removeTime := func(groups []string, a slog.Attr) slog.Attr { + if a.Key == slog.TimeKey && len(groups) == 0 { + return slog.Attr{} + } + return a + } + th := slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{ReplaceAttr: removeTime}) logger := slog.New(NewLevelHandler(slog.LevelWarn, th)) logger.Info("not printed") logger.Warn("printed") diff --git a/src/log/slog/example_log_level_test.go b/src/log/slog/example_log_level_test.go index ca8db416e5..258851b762 100644 --- a/src/log/slog/example_log_level_test.go +++ b/src/log/slog/example_log_level_test.go @@ -7,7 +7,6 @@ package slog_test import ( "log" "log/slog" - "log/slog/internal/slogtest" "os" ) @@ -49,7 +48,13 @@ func ExampleSetLogLoggerLevel_slog() { defer slog.SetLogLoggerLevel(currentLogLevel) // revert changes after the example defer slog.SetDefault(slog.Default()) // revert changes after the example - slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{ReplaceAttr: slogtest.RemoveTime}))) + removeTime := func(groups []string, a slog.Attr) slog.Attr { + if a.Key == slog.TimeKey && len(groups) == 0 { + return slog.Attr{} + } + return a + } + slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{ReplaceAttr: removeTime}))) log.Print("error") // level=ERROR msg=error diff --git a/src/log/slog/example_logvaluer_secret_test.go b/src/log/slog/example_logvaluer_secret_test.go index 51d0020793..da4c123617 100644 --- a/src/log/slog/example_logvaluer_secret_test.go +++ b/src/log/slog/example_logvaluer_secret_test.go @@ -6,7 +6,6 @@ package slog_test import ( "log/slog" - "log/slog/internal/slogtest" "os" ) @@ -23,7 +22,13 @@ func (Token) LogValue() slog.Value { // with an alternative representation to avoid revealing secrets. func ExampleLogValuer_secret() { t := Token("shhhh!") - logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{ReplaceAttr: slogtest.RemoveTime})) + removeTime := func(groups []string, a slog.Attr) slog.Attr { + if a.Key == slog.TimeKey && len(groups) == 0 { + return slog.Attr{} + } + return a + } + logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{ReplaceAttr: removeTime})) logger.Info("permission granted", "user", "Perry", "token", t) // Output: diff --git a/src/log/slog/internal/slogtest/slogtest.go b/src/log/slog/internal/slogtest/slogtest.go deleted file mode 100644 index d587662844..0000000000 --- a/src/log/slog/internal/slogtest/slogtest.go +++ /dev/null @@ -1,18 +0,0 @@ -// 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 slogtest contains support functions for testing slog. -package slogtest - -import "log/slog" - -// RemoveTime removes the top-level time attribute. -// It is intended to be used as a ReplaceAttr function, -// to make example output deterministic. -func RemoveTime(groups []string, a slog.Attr) slog.Attr { - if a.Key == slog.TimeKey && len(groups) == 0 { - return slog.Attr{} - } - return a -}