如何在不使用字段的情况下在 Uber Zap 中记录 key/value 对
How to log key/value pairs in Uber Zap without using Fields
我正在使用 zap 库进行日志记录,我尝试了一些简单的场景,在这些场景中我想在不使用 Fields
的情况下记录多个条目。不幸的是,它不起作用。
代码
cfg := zap.Config{
Encoding: "json",
Level: zap.NewAtomicLevelAt(zapcore.DebugLevel),
OutputPaths: []string{"stderr"},
ErrorOutputPaths: []string{"stderr"},
EncoderConfig: zapcore.EncoderConfig{
MessageKey: "message",
LevelKey: "level",
EncodeLevel: zapcore.CapitalLevelEncoder,
TimeKey: "time",
EncodeTime: zapcore.ISO8601TimeEncoder,
CallerKey: "caller",
EncodeCaller: zapcore.ShortCallerEncoder,
},
}
logger,_ := cfg.Build()
logger.Debug("This is a DEBUG message”) // works
logger.Info("This is an INFO message”, ”aaa”) // Error
有没有办法在不提供 Field
参数的情况下记录任何 key/value 对?
我尝试删除配置中的 message
条目但没有成功(它忽略了所有消息)
[I]s there a way to use zap without key and val ?
没有
我正在使用 zap 库进行日志记录,我尝试了一些简单的场景,在这些场景中我想在不使用 Fields
的情况下记录多个条目。不幸的是,它不起作用。
代码
cfg := zap.Config{
Encoding: "json",
Level: zap.NewAtomicLevelAt(zapcore.DebugLevel),
OutputPaths: []string{"stderr"},
ErrorOutputPaths: []string{"stderr"},
EncoderConfig: zapcore.EncoderConfig{
MessageKey: "message",
LevelKey: "level",
EncodeLevel: zapcore.CapitalLevelEncoder,
TimeKey: "time",
EncodeTime: zapcore.ISO8601TimeEncoder,
CallerKey: "caller",
EncodeCaller: zapcore.ShortCallerEncoder,
},
}
logger,_ := cfg.Build()
logger.Debug("This is a DEBUG message”) // works
logger.Info("This is an INFO message”, ”aaa”) // Error
有没有办法在不提供 Field
参数的情况下记录任何 key/value 对?
我尝试删除配置中的 message
条目但没有成功(它忽略了所有消息)
[I]s there a way to use zap without key and val ?
没有