Go 使用zap时如何自定义日志格式?

Go 使用zap时如何自定义日志格式?,go,logging,Go,Logging,目前,我们项目的日志格式如下: www.abcdef.com`3`1s {"url": "www.abcdef.com", "attempt": 3, "backoff": "1s"} 我想使用Go重写项目,并将zap作为日志工具导入。通过zap,日志的格式如下: www.abcdef.com`3`1s {"url": "www.abcdef.com", "attempt": 3, "backoff": "1s"} 我用谷歌搜索它的用法,但我没有找到任何方法将zap的格式更改为上述格式,

目前,我们项目的日志格式如下:

www.abcdef.com`3`1s
{"url": "www.abcdef.com", "attempt": 3, "backoff": "1s"}
我想使用Go重写项目,并将zap作为日志工具导入。通过zap,日志的格式如下:

www.abcdef.com`3`1s
{"url": "www.abcdef.com", "attempt": 3, "backoff": "1s"}

我用谷歌搜索它的用法,但我没有找到任何方法将zap的格式更改为上述格式,所以我想在这里寻求一些建议。

set
EncoderConfig

cfg:=zapcore.EncoderConfig{
时间键:“”,
LevelKey:“”,
名称键:“”,
CallerKey:“,
MessageKey:“M”,
StacktraceKey:“,
}
Zap允许。在链接文章中,作者将的字段
EncodeLevel
设置为自定义函数。这样,您可以更改日志级别、时间戳、持续时间、调用方和记录器名称的编码

您还可以使用添加自定义编码器,然后在编码器名称中设置
Encoding
字段


请记住,每次调用日志记录方法时都会使用编码器,因此它必须具有良好的性能。

zap的关键功能之一是它速度快,因为它没有自定义格式,所以我怀疑它是否有您想要的功能,但这只是从读了5分钟的文档,我找到了记录完整字符串格式的方法。
zapcore
支持结构编码器配置。当我将matter keys设置为空值时,zap不会记录这些键的信息。配置如下:
cfg:=zapcore.EncoderConfig{TimeKey:,LevelKey:,NameKey:,CallerKey:,MessageKey:,M,StacktraceKey:}
无论如何,非常感谢您的回答!