我zerolog在我的 go 項(xiàng)目中使用包,我需要在兩個(gè)文件和stdout. 我從這里參考了。我所做的唯一更改是,我沒有創(chuàng)建名為 的新變量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!")它在標(biāo)準(zhǔn)輸出中產(chǎn)生如下所示的輸出,這是預(yù)期的。{"level":"info","time":"2022-09-15T08:10:28-04:00","message":"Hello World!"}但是,文件內(nèi)容變得混亂,附加的消息字段再次包裝了上面的輸出。{"message":"{\"level\":\"info\",\"time\":\"2022-09-15T08:10:28-04:00\",\"message\":\"Hello World!\"}"}如何在沒有附加消息字段的情況下強(qiáng)制 zerolog 記錄內(nèi)容?
1 回答

Smart貓小萌
TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊
MultiLevelWriter接受io.Writer。所以你可以輸入runLogFile這個(gè)。
最后,代碼如下所示:
runLogFile, _ := os.OpenFile(
"myapp.log",
os.O_APPEND|os.O_CREATE|os.O_WRONLY,
0664,
)
multi := zerolog.MultiLevelWriter(os.Stdout, runLogFile)
log.Logger = zerolog.New(multi).With().Timestamp().Logger()
log.Info().Msg("Hello World!")
- 1 回答
- 0 關(guān)注
- 294 瀏覽
添加回答
舉報(bào)
0/150
提交
取消