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.INFObadger.WARNINGbadger.ERROR
通过将日志级别设置为badger.ERROR或更高,就可以过滤掉INFO和DEBUG级别的日志消息。

