你好我想使用zap全局记录器
现在我使用sugar_logger的方式如下
log_sugar.Infow("Start API",
"protocol", "http",
"host", config.Host,
)
响应为{"level":"info","ts":1638893668.7487385,"caller":"root/main.go:97","msg":"Start API.","host":"0.0.0.0:8080","protocol":"http","host":"0.0.0.0:8080"}
但是我想用zap.L().Info("replaced zap's global loggers")
当我像这样
zap.L().Info("Start API",
"protocol", "http",
"host", config.Host,
)
我得到一个错误“太多的参数”我如何使用全局日志记录器,我做错了什么
谢谢
2条答案
按热度按时间iszxjhcz1#
https://pkg.go.dev/go.uber.org/zap#Logger 采用
string
和zap.Field
列表。“太多参数”,因为
zap.Info
接受一个字符串和一个Field
的变量列表,但是你包含了太多的字符串,而没有Field
。string
不可能是Field
,所以它们最终成为了额外的字符串参数,这不符合函数签名。jv2fixgn2#
请改用
zap.S()
,它返回指向全局SugaredLogger
的指针。