How to change glog log level at runtime, not compile time?
我正在使用
glog软件包从标志读取配置。 您可以在运行时从代码中修改标志,以更改glog的行为。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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") } |
结果是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ? ./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 |