如何将钩子添加到 zap 记录器中?
Posted
技术标签:
【中文标题】如何将钩子添加到 zap 记录器中?【英文标题】:How to add a hook into a zap logger? 【发布时间】:2021-02-24 10:35:41 【问题描述】:我尝试使用WithOptions
添加钩子,但没有打印任何内容来捕获一些日志事件:
logger.WithOptions(zap.Hooks(func(entry zapcore.Entry) error
fmt.Println("test hooks test hooks")
return nil
))
【问题讨论】:
你有没有忘记defer logger.Sync()
?
【参考方案1】:
来自documentation:
func (log *Logger) WithOptions(opts ...Option) *Logger
WithOptions 克隆当前记录器,应用提供的选项,并返回结果记录器。同时使用是安全的。
请注意,它会克隆一个新的记录器,而不是修改记录器。因此,您应该像这样重新分配记录器变量(或定义一个新变量):
logger = logger.WithOptions(zap.Hooks(func(entry zapcore.Entry) error
fmt.Println("test hooks test hooks")
return nil
))
【讨论】:
以上是关于如何将钩子添加到 zap 记录器中?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Sentry 与 go.uber.org/zap/zapcore 记录器一起使用
如何使用 uber-go/zap 根据日志级别记录到标准输出或标准错误?
有没有办法在同一个 Zap 中使用 POST 和/或 PATCH 更新记录?