MCPcopy Index your code
hub / github.com/gobyexample-cn/gobyexample / main

Function main

examples/logging/logging.go:16–60  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

14)
15
16func main() {
17
18 // 只需调用 `log` 包中的 `Println` 等函数即可使用 _标准_ logger。
19 // 它已经预先配置为将日志输出到 `os.Stderr`。
20 // 像 `Fatal*` 或 `Panic*` 这样的附加方法将在记录日志后退出程序。
21 log.Println("standard logger")
22
23 // 日志记录器可以使用 _flags_ 进行配置,以设置它们的输出格式。
24 // 默认情况下,标准记录器已设置了 `log.Ldate` 和 `log.Ltime` 标志,
25 // 并将它们收集在 `log.LstdFlags` 中。
26 // 我们可以更改其标志以发出微秒精度的时间,例如:
27 log.SetFlags(log.LstdFlags | log.Lmicroseconds)
28 log.Println("with micro")
29
30 // 它还支持发出调用 log` 函数的文件名和行号。
31 log.SetFlags(log.LstdFlags | log.Lshortfile)
32 log.Println("with file/line")
33
34 // 可能会有用创建一个自定义记录器并在各处传递它。
35 // 创建新记录器时,我们可以设置一个 _前缀_ 来区分其输出和其他日志记录器。
36 mylog := log.New(os.Stdout, "my:", log.LstdFlags)
37 mylog.Println("from mylog")
38
39 // 我们可以使用 `SetPrefix` 方法在现有的记录器(包括标准记录器)上设置前缀。
40 mylog.SetPrefix("ohmy:")
41 mylog.Println("from mylog")
42
43 // 日志记录器可以具有自定义的输出目标;任何 `io.Writer` 都可以使用。
44 var buf bytes.Buffer
45 buflog := log.New(&buf, "buf:", log.LstdFlags)
46
47 // 这个调用将日志输出写入到 `buf` 中.
48 buflog.Println("hello")
49
50 // 这将实际上显示在标准输出上。
51 fmt.Print("from buflog:", buf.String())
52
53 // `slog 包提供了 _结构化_ 的日志输出。例如,以 JSON 格式记录日志非常直接。
54 jsonHandler := slog.NewJSONHandler(os.Stderr, nil)
55 myslog := slog.New(jsonHandler)
56 myslog.Info("hi there")
57
58 // 除了 `msg` 之外,`slog` 输出还可以包含任意数量的键值对。
59 myslog.Info("hello again", "key", "val", "age", 25)
60}

Callers

nothing calls this directly

Calls 1

StringMethod · 0.80

Tested by

no test coverage detected