Golang中如何关闭Badger的INFO/DEBUG日志信息

Golang中如何关闭Badger的INFO/DEBUG日志信息 有人使用Badger进行键值存储吗?我正在尝试将其用于一个项目,但它似乎将日志级别设置为DEBUG,因为我不断看到类似以下的消息:

badger 2019/06/19 22:11:06 DEBUG: Storing value log head: {Fid:0 Len:43 Offset:16038}
badger 2019/06/19 22:11:06 INFO: Got compaction priority: {level:0 score:1.73 dropPrefix:[]}
badger 2019/06/19 22:11:06 INFO: Running for level: 0
badger 2019/06/19 22:11:06 DEBUG: LOG Compact. Added 5 keys. Skipped 3 keys. Iteration took: 480.685µs
badger 2019/06/19 22:11:06 DEBUG: Discard stats: map[0:424]
badger 2019/06/19 22:11:06 INFO: LOG Compact 0->1, del 2 tables, add 1 tables, took 17.036862ms
badger 2019/06/19 22:11:06 INFO: Compaction for level: 0 DONE
badger 2019/06/19 22:11:06 INFO: Force compaction on level 0 done
badger 2019/06/19 22:11:06 INFO: All 1 tables opened in 0s
badger 2019/06/19 22:11:06 INFO: Replaying file id: 0 at offset: 16081
badger 2019/06/19 22:11:06 INFO: Replay took: 18.347µs

如何关闭这些消息?


更多关于Golang中如何关闭Badger的INFO/DEBUG日志信息的实战教程也可以访问 https://www.itying.com/category-94-b0.html

2 回复

好的,我明白了如何通过设置来完全关闭它:

opts = badger.DefaultOptions
opts.Logger = nil

但是查看logger.go文件后,似乎没有设置日志级别的方法……除非添加我自己的记录器。

更多关于Golang中如何关闭Badger的INFO/DEBUG日志信息的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


可以通过设置Badger的日志级别来禁用INFO和DEBUG日志输出。Badger使用标准库的log包,但提供了选项来控制日志级别。

以下是关闭这些日志消息的代码示例:

package main

import (
    "github.com/dgraph-io/badger/v3"
    "github.com/dgraph-io/badger/v3/options"
)

func main() {
    opts := badger.DefaultOptions("").WithLoggingLevel(badger.ERROR)
    
    // 或者更明确地设置日志级别
    // opts := badger.DefaultOptions("")
    // opts.Logger = nil  // 完全禁用日志
    // opts.LoggingLevel = badger.ERROR // 只显示ERROR级别及以上的日志
    
    db, err := badger.Open(opts)
    if err != nil {
        panic(err)
    }
    defer db.Close()
    
    // 你的数据库操作代码...
}

对于较新版本的Badger(v2+),可以使用WithLoggingLevel方法:

opts := badger.DefaultOptions("/path/to/data")
opts = opts.WithLoggingLevel(badger.ERROR)

db, err := badger.Open(opts)
if err != nil {
    panic(err)
}
defer db.Close()

如果你想完全禁用所有Badger日志输出:

opts := badger.DefaultOptions("")
opts.Logger = nil

db, err := badger.Open(opts)
if err != nil {
    panic(err)
}
defer db.Close()

可用的日志级别常量包括:

  • badger.DEBUG (默认)
  • badger.INFO
  • badger.WARNING
  • badger.ERROR

通过将日志级别设置为badger.ERROR或更高,就可以过滤掉INFO和DEBUG级别的日志消息。

回到顶部