问题描述
我正在使用 zap logger 的加糖记录器,我已按如下方式初始化 zap 记录器:
func InitLogger() {
loggerMgr,err := logger.NewProduction()
if err != nil {
log.Println("error")
}
logger.ReplaceGlobals(loggerMgr)
defer loggerMgr.Sync()
logger := loggerMgr.Sugar()
logger.Debug("START!")
}
我使用的日志语句如下:
zap.S().Errorf("Invalid thing_key: %s \n Please enter correct thing_key",payload.ThingKey)
我得到以下输出:
{"level":"error","ts":1623216910.6660104,"caller":"db/water_meter.go:40","msg":"Invalid thing_key: 123 \n Please enter correct thing_key"}
但我期待输出如下:
{"level":"error","msg":"Invalid thing_key: 123
Please enter correct thing_key"}
请提供有关如何获得此输出的任何建议
解决方法
Zap 输出日志为 json 格式,json 字符串中不允许有换行符。
使用 zap
库无法实现您的要求。