go - Zap logger 是否支持转义字符 '\n' 和 '\t' 在日志输出中打印新行或制表符
问题描述
我正在使用 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","ts":1623216910.6660104,"caller":"db/water_meter.go:40","msg":"Invalid thing_key: 123
Please enter correct thing_key"}
请提供有关如何获得此输出的任何建议
解决方案
json 格式的 Zap 输出日志和 json 字符串中不允许出现换行符。
这是不可能做到你对zap
图书馆要求的。
推荐阅读
- emacs - 使用 :session 时,Org-mode sh 块在结果中显示 shell 提示
- sql - SQLite 基于字段值的简单插入
- python - 是什么导致html也输出?
- google-apps-script - 将下拉列表动态映射到 Google 表格中的条件
- python - Pyspark 数据框或镶木地板文件到 DynamoDB
- java - java paypal webhook控制器处理支付事件
- .net-core - Azure Artifacts 无法提供包
- sql - SQL - 获取最近的记录
- r - 线性回归中的常数是1s的向量吗?
- google-analytics - Google Analytics 中不同范围组合的例外情况