如何在不使用字段的情况下在 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 ?

没有