日志
在 Go 中,可使用内置的 log
包或其他第三方日志库进行日志记录,后者一般可提供更高级的功能。
常规日志
package main
import "log"
func main() {
// 基本日志记录
log.Println("This is a basic log message")
// 带格式的日志记录
name := "John"
age := 30
log.Printf("Name: %s, Age: %d", name, age)
// 设置日志前缀
log.SetPrefix("[MyApp] ")
log.Println("Log message with custom prefix")
// 设置日志标志
log.SetFlags(log.Ldate | log.Ltime)
log.Println("Log message with custom date and time format")
}
其输出:
2013/10/07 09:42:00 This is a basic log message
2013/10/07 09:42:00 Name: John, Age: 30
[MyApp] 2013/10/07 09:42:00 Log message with custom prefix
[MyApp] 2013/10/07 09:42:00 Log message with custom date and time format
结构化日志
log/slog
包提供了结构化日志,其中包括消息、严重级别和各种其他属性,这些属性展现为键值对。
package main
import (
"log/slog"
"os"
)
func main() {
jsonHandler := slog.NewJSONHandler(os.Stdout, nil)
myslog := slog.New(jsonHandler)
myslog.Info("hi there")
myslog.Info("hello again", "key", "val", "age", 25)
}
其输出:
{"time":"2009-11-10T23:00:00Z","level":"INFO","msg":"hi there"}
{"time":"2009-11-10T23:00:00Z","level":"INFO","msg":"hello again","key":"val","age":25}
Loading...
> 此处输出代码运行结果