Go 语言 - 自定义 log
·
1min
·
Paxon Qiao
Table of Contents
Go 语言 - 自定义 log
Code/go/go_log_demo via 🐹 v1.20.3 via 🅒 base
➜ tree
.
├── errors.log
├── go.mod
└── main.go
1 directory, 3 files
Code/go/go_log_demo via 🐹 v1.20.3 via 🅒 base
➜
main.go
package main
import (
"io"
"log"
"os"
)
var (
Trace *log.Logger // 几乎任何东西
Info *log.Logger // 重要信息
Warning *log.Logger // 警告
Error *log.Logger // 错误
)
func init() {
file, err := os.OpenFile("errors.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
log.Fatalln("无法打开错误 log 文件:", err)
}
Trace = log.New(io.Discard, "TRACE: ", log.Ldate|log.Ltime|log.Lshortfile)
Info = log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)
Warning = log.New(os.Stdout, "WARNING: ", log.Ldate|log.Ltime|log.Lshortfile)
Error = log.New(io.MultiWriter(file, os.Stderr), "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
}
func main() {
Trace.Println("鸡毛蒜皮的小事")
Info.Println("一些特别的信息")
Warning.Println("这是一个警告")
Error.Println("出现了故障")
}
运行
Code/go/go_log_demo via 🐹 v1.20.3 via 🅒 base
➜ go run .
INFO: 2023/05/26 14:22:34 main.go:33: 一些特别的信息
WARNING: 2023/05/26 14:22:34 main.go:34: 这是一个警告
ERROR: 2023/05/26 14:22:34 main.go:35: 出现了故障
Code/go/go_log_demo via 🐹 v1.20.3 via 🅒 base
➜
errors.log
ERROR: 2023/05/26 14:22:34 main.go:35: 出现了故障