gpt4 book ai didi

go - 如何在运行时而不是编译时更改 glog 日志级别?

转载 作者:IT王子 更新时间:2023-10-29 01:44:21 30 4
gpt4 key购买 nike

我正在使用 github.com/golang/glog ,并希望在运行时更改标志 stderrthresholdV-leveled logging,即无需重新编译二进制文件并重新运行它。我搜索了一些资源,但所有答案都是在编译时更改的。由于我不想停止我的服务,是否可以在运行时更改它?

最佳答案

glog包从标志中读取配置。您可以在运行时从您的代码中修改标志以更改 glog 的行为。

package main

import (
"flag"
"fmt"

"github.com/golang/glog"
)

func main() {
// glog needs flag.Parse() call
flag.Parse()
glog.Info("default level")
glog.V(3).Info("Level 3 log")
if glog.V(3) {
fmt.Println("Changing log level to 5")
flag.Lookup("v").Value.Set("5")
}
glog.V(4).Info("Level 4 log")

glog.V(5).Info("Level 5 log")

}

结果在

➜ ./main --alsologtostderr -v 2
I0223 23:42:26.661984 4587 main.go:12] default level
➜ ./main --alsologtostderr -v 3
I0223 23:42:28.209673 4600 main.go:12] default level
I0223 23:42:28.210174 4600 main.go:13] Level 3 log
Changing log level to 5
I0223 23:42:28.210210 4600 main.go:18] Level 4 log
I0223 23:42:28.210230 4600 main.go:20] Level 5 log
➜ ./main --alsologtostderr -v 4
I0223 23:42:30.927222 4614 main.go:12] default level
I0223 23:42:30.928018 4614 main.go:13] Level 3 log
Changing log level to 5
I0223 23:42:30.928072 4614 main.go:18] Level 4 log
I0223 23:42:30.928088 4614 main.go:20] Level 5 log

关于go - 如何在运行时而不是编译时更改 glog 日志级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49868828/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com