内置log
import ("log""os"
)func main() {// 设置loglog.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)// 自定义日志前缀log.SetPrefix("[pprof]")log.Println("main ..")// 如果用format就用PrintF,而不是Print打印,out: 2025/02/13 11:32:45 普通日志日志log.Printf("普通日志%s\n", "日志")/**2025/02/13 11:32:45 普通日志%s日志*/log.Print("普通日志%s\n", "日志")// 自定义logger := log.New(os.Stdout, "<New>", log.Lshortfile|log.Ldate|log.Ltime)logger.Println("这是自定义的logger记录的日志。")// 严重错误log.Fatalln("严重错误")// Panic系列函数会在写入日志信息后panic// 在 Go 语言中,panic 是一种用于处理程序异常情况的机制。//当程序遇到无法继续执行的严重错误时,可以通过 panic 触发一个运行时错误,//导致程序立即停止当前函数的执行,并开始执行延迟函数(defer),最后退出程序。log.Panic("使人惶恐的")
}
zap
github:https://github.com/uber-go/zap
import ("go.uber.org/zap"
)/*
*
{"level":"info","ts":1739418401.0806556,"caller":"src/test1.go:11","msg":"This i
s an info log","key":"value","count":1}
{"level":"warn","ts":1739418401.0812044,"caller":"src/test1.go:15","msg":"This i
s an info log","key":"value","count":1}
{"level":"error","ts":1739418401.0812044,"caller":"src/test1.go:19","msg":"This
is an info log","key":"value","count":1,"stacktrace":"main.main\n\t***src/test1.go:19\nruntime.main\n\tC:/Program Files/Go/src/runtime/proc.g
o:267"}
*/
func main() {logger, _ := zap.NewProduction()defer logger.Sync()logger.Info("This is an info log",zap.String("key", "value"),zap.Int("count", 1),)logger.Warn("This is an info log",zap.String("key", "value"),zap.Int("count", 1),)logger.Error("This is an info log",zap.String("key", "value"),zap.Int("count", 1),)
}