zaplog
功能
實作使用高性能 zap log 框架
擁有 log level 配置 (常用 debug/warn/info/error)與程式碼位置
可以選擇印出在 console 或是文件(要外掛 lumberjack 去分割)
log New 三種創建方式
通過調用zap.NewProduction()/zap.NewDevelopment()或者zap.Example()創建一個Logger。
這三個方法的區別在於它將記錄的信息不同 see 參考
func InitLogger() {
logger, _ := zap.NewDevelopment()
zap.ReplaceGlobals(logger)
zap.S().Infof("test log")
}
2022-09-18T11:45:11.416+0800 INFO logger/zap.go:9 test log
//logger, _ := zap.NewProduction()
{"level":"info","ts":1663472751.050445,"caller":"logger/zap.go:9","msg":"test log"}
LOG 輸出選擇
zap.Logger 輸出需針對 Type 去輸入,使用跟印出看起來都比較麻煩一點
zap.SugaredLogger 就像是語法糖,函式可以增加易用性,但犧牲效能
時間格式:
#### ISO8601TimeEncoder
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
//"2006-01-02T15:04:05.000Z0700"
時間顯示 2022-04-15T08:24:16.474+0800 INFO
#### 自定義:時間顯示到ms
時間顯示 2022-04-15T09:50:40.456340
encoderConfig.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02T15:04:05.000000")
參考
Last updated