我zerolog在我的 go 项目中使用包,我需要在两个文件和stdout. 我从这里参考了。我所做的唯一更改是,我没有创建名为 的新变量logger,而是直接影响了全局记录器。
runLogFile, _ := os.OpenFile(
"myapp.log",
os.O_APPEND|os.O_CREATE|os.O_WRONLY,
0664,
)
fileLogger := zerolog.New(runLogFile).With().Logger()
multi := zerolog.MultiLevelWriter(os.Stdout, fileLogger)
log.Logger = zerolog.New(multi).With().Timestamp().Logger()
log.Info().Msg("Hello World!")
它在标准输出中产生如下所示的输出,这是预期的。
{"level":"info","time":"2022-09-15T08:10:28-04:00","message":"Hello World!"}
但是,文件内容变得混乱,附加的消息字段再次包装了上面的输出。
{"message":"{\"level\":\"info\",\"time\":\"2022-09-15T08:10:28-04:00\",\"message\":\"Hello World!\"}"}
如何在没有附加消息字段的情况下强制 zerolog 记录内容?
汪汪一只猫
Smart猫小萌
随时随地看视频慕课网APP
相关分类