目录
Go 语言中的 logger 和 zap 日志库
在软件开发过程中,需要进行关键日志记录,便于后期的审计和排错。
一个好的日志记录器应该具备以下功能:
- 日志写入到文件而不是控制台输出
- 日志切割-按文件大小、时间或间隔等切割日志文件
- 支持不同的日志级别,如:INFO,DEBUG,ERROR 等
- 能打印基本信息,如调用文件/函数名和行号,日志时间等
Go Logger
配置日志输出文件
func SetupLogger() {
logFileLocation, _ := os.OpenFile("./test.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0744)
log.SetOutput(logFileLocation)
}
编写示例,建立一个到 URL 的 HTTP 连接,记录状态码/错误记录到日志文件
func simpleHttpGet(url string) {
resp, err := http.Get(url)
if err != nil {
log.Printf("Error fetching url %s : %s", url, err.Error())
} else {
log.Printf("Status Code for %s : %s", url, resp.Status)
resp.Body.Close()
}
}
main 函数,执行示例
func main() {
SetupLogger()
simpleHttpGet("www.google.com")
simpleHttpGet("http://www.google.com")
}
看到 test.log
文件被创建,并且记录了下面的内容
2022/04/22 11:33:52 Error fetching url www.google.com : Get "www.google.com": unsupported protocol scheme ""
2022/04/22 11:33:53 Status Code for http://www.google.com : 200 OK