如何解决是否可以用logrus日志记录将“ msg”替换为“ message”
因此,在使用Logrus时,我需要记录输出具有message
键而不是msg
键,但是当我使用下面的代码时,我会得到两者,但是msg
为空,如何配置logrus使用“消息”而不是“ msg”?
contextLogger.WithField("logger_name",topic).WithField("message",messageString).Info()
这是.Info()
为空// // .Info()
记录到msg
键的日志输出
"logger_name": "logger","message": "log message","msg": "","time": "2020-08-12T15:14:48Z"
我想要的是能够使用.Info(message)
并拥有
"logger_name": "logger","time": "2020-08-12T15:14:48Z"
是否可以更改.Info()等的默认日志记录键?
解决方法
您可以使用JSonFormatter的FieldMap
字段来完成此操作:
// 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
这使您可以覆盖默认字段名称,包括msg
。
这是一个简短的示例(请参见playground):
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")
}
输出:
{"level":"info","logger_name":"topic2","message":"this is my message","time":"2009-11-10T23:00:00Z"}
TextFormatter上可以使用相同的替代。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。