登录
首页 >  Golang >  Go问答

如何停用 go-redis 包的内部日志记录功能

来源:stackoverflow

时间:2024-02-07 15:09:22 216浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《如何停用 go-redis 包的内部日志记录功能》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

我对 go lang 有点陌生。所以这里需要一些帮助。

我正在使用 go-redis 包通过 redis sentinal 来连接到 redis。 封装:

github.com/go-redis/redis/v9

现在我的问题是,每当我执行代码时,它都会进行内部日志记录并在终端上进行一些自动打印。 (请注意,我的代码中没有使用任何打印或日志语句)

下面是终端上自动打印的内容: “redis:2022/11/04 09:33:07 sentinel.go:661:sentinel:新master =“redis-master”addr =“127.0.0.1:6379”

**我不希望打印 go-redis 内部日志,并且 go-redis 都不应该打印其内部日志 **

请帮助我如何禁用 go-redis 的内部日志记录和自动日志打印

我的代码:

rdb := redis.newfailoverclient(&redis.failoveroptions{
    mastername:    "master",
    sentineladdrs: []string{":26379"},
})
rdb.ping(ctx)

err := rdb.set(ctx, "key", "value", 0).err()
if err != nil {
fmt.println(err)
}

我检查了各种论坛,但没有得到任何相关信息。 有人说我可以用

SetLogger() func of go-redis

但我不知道如何使用它。 如果有人可以帮我提供示例代码。


正确答案


redis.setlogger 采用 internal.logging 作为参数。

您可以编写一个满足此接口但在 printf 方法中不执行任何操作的无操作记录器结构,并在 setlogger 方法中使用它

喜欢

type NOOPLogger struct{}

func (NOOPLogger) Printf(ctx context.Context, format string, v ...interface{}) {
    // Do nothing here
}

// Then wherever redis client is started/ connected
redis.SetLogger(NOOPLogger{})

今天关于《如何停用 go-redis 包的内部日志记录功能》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>