【问题标题】:How to disable internal logging of go-redis package如何禁用 go-redis 包的内部日志记录
【发布时间】:2022-11-12 11:40:38
【问题描述】:

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

我正在使用 go-redis 包使用 redis sentinel 连接到 redis。 包裹 :

github.com/go-redis/redis/v9

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

下面是在终端上自动打印: "redis: 2022/11/04 09:33:07 sentinel.go:661: sentinel: new 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

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

【问题讨论】:

    标签: go go-redis


    【解决方案1】:

    redis.SetLoggerinternal.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{})
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 2018-12-24
      • 2020-01-17
      • 2016-07-04
      • 2021-06-27
      • 1970-01-01
      相关资源
      最近更新 更多