因此,当使用 Logrus 时,我需要日志记录输出具有 keymessage而不是msgkey,但是当我使用下面的代码时,我得到了两者,但msg为空,如何配置 logrus 以使用“message”而不是“msg”?
contextLogger.WithField("logger_name",topic).WithField("message",messageString).Info()
Run Code Online (Sandbox Code Playgroud)
.Info()这是将空的日志输出.Info()到msg键时的日志输出
"logger_name": "logger","message": "log message","msg": "","time": "2020-08-12T15:14:48Z"
Run Code Online (Sandbox Code Playgroud)
我想要的是能够使用.Info(message)并拥有
"logger_name": "logger","message": "log message","time": "2020-08-12T15:14:48Z"
Run Code Online (Sandbox Code Playgroud)
是否可以更改 .Info() 等的默认日志记录键?
您可以使用JsonFormatterFieldMap字段来执行此操作:
// FieldMap allows users to customize the names of keys for default fields.
// As an example:
// formatter := &JSONFormatter{
// FieldMap: FieldMap{
// FieldKeyTime: "@timestamp",
// FieldKeyLevel: "@level",
// FieldKeyMsg: "@message",
// FieldKeyFunc: "@caller",
// },
// }
FieldMap FieldMap
Run Code Online (Sandbox Code Playgroud)
这允许您覆盖默认字段名称,包括msg.
这是一个简短的示例(请参阅游乐场):
package main
import (
log "github.com/sirupsen/logrus"
)
func main() {
log.SetFormatter(&log.JSONFormatter{
FieldMap: log.FieldMap{
log.FieldKeyMsg: "message",
},
})
log.WithField("logger_name", "topic2").Info("this is my message")
}
Run Code Online (Sandbox Code Playgroud)
输出:
{"level":"info","logger_name":"topic2","message":"this is my message","time":"2009-11-10T23:00:00Z"}
Run Code Online (Sandbox Code Playgroud)
TextFormatter上也可以进行相同的覆盖。
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |