go - 如何将钩子(Hook)添加到 zap 记录器中?

标签 go go-zap

我尝试用 WithOptions 添加钩子(Hook)但是没有打印任何内容来捕获一些日志事件:

    logger.WithOptions(zap.Hooks(func(entry zapcore.Entry) error {
        fmt.Println("test hooks test hooks")
        return nil
    }))

最佳答案

来自 documentation :

func (log *Logger) WithOptions(opts ...Option) *Logger

WithOptions clones the current Logger, applies the supplied Options, and returns the resulting Logger. It's safe to use concurrently.


请注意,它克隆了一个新的记录器,而不是修改记录器。因此,您应该像这样重新分配记录器变量(或定义一个新变量):
logger = logger.WithOptions(zap.Hooks(func(entry zapcore.Entry) error {
    fmt.Println("test hooks test hooks")
    return nil
}))

关于go - 如何将钩子(Hook)添加到 zap 记录器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64803634/

相关文章:

带指针的 Go 工厂方法多态性

Golang 堆栈跟踪详细信息

regex - 为什么不匹配不同于文件和变量的正则表达式?

sqlite - Go/golang sqlite 查询不返回任何行

go - fork /执行。没有这样的文件或目录退出状态 1

go - Uber-go/zap 和 kafka-go 比赛条件

go - 如何使用 go.uber.org/zap lib 以不同的日志级别打印不同的颜色,并根据日志级别将日志附加到不同的文件?

go - Zap 堆栈跟踪与谷歌云上的错误消息