您现在的位置是:首页 > 编程 > 

Go程序例子(76):日志记录

2025-07-27 02:11:30
Go程序例子(76):日志记录 Go 标准库提供了简单的工具来从 Go 程序中输出日志,其中 log 包用于自由格式的输出,而 log/slog 包用于结构化输出。代码语言:go复制package main import ( "bytes" "fmt" "log" "os"

Go程序例子(76):日志记录

Go 标准库提供了简单的工具来从 Go 程序中输出日志,其中 log 包用于自由格式的输出,而 log/slog 包用于结构化输出。

代码语言:go复制
package main

import (
    "bytes"
    "fmt"
    "log"
    "os"

    "log/slog"
)

func main() {
		// 简单地调用 log 包中的 Println 等函数会使用标准日志记录器,它已经预先配置为将合理的日志输出到 os.Stderr。像 Fatal* 或 Panic* 这样的附加方法会在记录日志后退出程序。
    log.Println("standard logger")
		// 可以通过设置标志来配置日志记录器的输出格式。默认情况下,标准日志记录器设置了 log.Ldate 和 log.Ltime 标志,这些标志被收集在 log.LstdFlags 中。例如,我们可以更改其标志以发出微秒精度的时间。
    log.SetFlags(log.LstdFlags | log.Lmicroseconds)
    log.Println("with micro")
		// 它还支持发出调用日志函数的文件名和行号。
    log.SetFlags(log.LstdFlags | log.Lshortfile)
    log.Println("with file/line")
		// 创建一个自定义日志记录器并传递它可能很有用。在创建新日志记录器时,我们可以设置一个前缀以将其输出与其他日志记录器区分开来。
    mylog := (os.Stdout, "my:", log.LstdFlags)
    mylog.Println("from mylog")
		// 我们可以使用 SetPrefix 方法为现有的日志记录器(包括标准日志记录器)设置前缀。
    mylog.SetPrefix("ohmy:")
    mylog.Println("from mylog")
		// 日志记录器可以具有自定义的输出目标;任何 io.Writer 都可以使用。
    var buf bytes.Buffer
    buflog := (&buf, "buf:", log.LstdFlags)
		// 此调用将日志输出写入 buf。
    buflog.Println("hello")
		// 这实际上会在标准输出上显示它。
    fmt.Print("from buflog:", buf.String())
		// slog 包提供了结构化的日志输出。例如,以 JSO 格式记录日志非常简单。
    jsonHandler := sJSOHandler(os.Stderr, nil)
    myslog := s(jsonHandler)
    myslog.Info("hi there")
		// 除了消息外,slog 输出还可以包含任意数量的 key=value 对。
    myslog.Info("hello again", "key", "val", "age", 25)
}

运行结果:

代码语言:javascript代码运行次数:0运行复制
➜ go run logging.go                   
2025/01/20 14:14:0 standard logger
2025/01/20 14:14:0.298758 with micro
2025/01/20 14:14:0 logging.go:19: with file/line
my:2025/01/20 14:14:0 from mylog
ohmy:2025/01/20 14:14:0 from mylog
from buflog:buf:2025/01/20 14:14:0 hello
{"time":"2025-01-20T14:14:0.298799+08:00","level":"IFO","msg":"hi there"}
{"time":"2025-01-20T14:14:0.298807+08:00","level":"IFO","msg":"hello again","key":"val","age":25}

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1165173.html

相关标签:无
上传时间: 2025-07-21 01:43:34
留言与评论(共有 11 条评论)
本站网友 格列吡嗪
5分钟前 发表
2025/01/20 14
本站网友 黄豆酱的功效与作用
26分钟前 发表
with file/line my
本站网友 法莫替丁
28分钟前 发表
例如
本站网友 癫痫能治愈吗
27分钟前 发表
14
本站网友 创业资金
23分钟前 发表
"age"
本站网友 天津取消限购
20分钟前 发表
= (&buf
本站网友 进口凯迪拉克
13分钟前 发表
我们可以更改其标志以发出微秒精度的时间
本站网友 三高人群食谱
16分钟前 发表
0.298758 with micro 2025/01/20 14
本站网友 l619
2秒前 发表
"2025-01-20T14
本站网友 夏季如何快速减肥
2分钟前 发表
标准日志记录器设置了 log.Ldate 和 log.Ltime 标志