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

时间:2018-09-11 10:58:16

标签: go logging

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

www.abcdef.com`3`1s

我想使用Go重写项目并将zap导入为日志工具。通过zap,日志的格式如下:

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

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

2 个答案:

答案 0 :(得分:0)

设置EncoderConfig

cfg := zapcore.EncoderConfig{ TimeKey: "", LevelKey: "", NameKey: "", CallerKey: "", MessageKey: "M", StacktraceKey: "" }

答案 1 :(得分:0)

Zap允许customize encoders。在链接的文章中,作者将EncoderConfig的字段EncodeLevel设置为自定义函数。这样,您可以更改日志记录级别,时间戳,持续时间,呼叫者和记录器名称的编码。

您还可以使用zap.RegisterEncoder添加自定义编码器,然后将config中的Encoding字段设置为编码器的名称。

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