• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2023 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
5package slog_test
6
7import (
8	"log"
9	"log/slog"
10	"log/slog/internal/slogtest"
11	"os"
12)
13
14// This example shows how to use slog.SetLogLoggerLevel to change the minimal level
15// of the internal default handler for slog package before calling slog.SetDefault.
16func ExampleSetLogLoggerLevel_log() {
17	defer log.SetFlags(log.Flags()) // revert changes after the example
18	log.SetFlags(0)
19	defer log.SetOutput(log.Writer()) // revert changes after the example
20	log.SetOutput(os.Stdout)
21
22	// Default logging level is slog.LevelInfo.
23	log.Print("log debug") // log debug
24	slog.Debug("debug")    // no output
25	slog.Info("info")      // INFO info
26
27	// Set the default logging level to slog.LevelDebug.
28	currentLogLevel := slog.SetLogLoggerLevel(slog.LevelDebug)
29	defer slog.SetLogLoggerLevel(currentLogLevel) // revert changes after the example
30
31	log.Print("log debug") // log debug
32	slog.Debug("debug")    // DEBUG debug
33	slog.Info("info")      // INFO info
34
35	// Output:
36	// log debug
37	// INFO info
38	// log debug
39	// DEBUG debug
40	// INFO info
41}
42
43// This example shows how to use slog.SetLogLoggerLevel to change the minimal level
44// of the internal writer that uses the custom handler for log package after
45// calling slog.SetDefault.
46func ExampleSetLogLoggerLevel_slog() {
47	// Set the default logging level to slog.LevelError.
48	currentLogLevel := slog.SetLogLoggerLevel(slog.LevelError)
49	defer slog.SetLogLoggerLevel(currentLogLevel) // revert changes after the example
50
51	defer slog.SetDefault(slog.Default()) // revert changes after the example
52	slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{ReplaceAttr: slogtest.RemoveTime})))
53
54	log.Print("error") // level=ERROR msg=error
55
56	// Output:
57	// level=ERROR msg=error
58}
59