如何从代码中设置 glog 的日志目录
How do I set the log directory of glog from code
有谁知道如何set/modify golang 源代码中的日志目录?
我想在源代码中设置日志目录,而不是在 cmdline
中设置 -log_dir=
glog package 是 Google 中使用的日志包的转储。 Google 使用命令行标志配置日志记录,这就是包所支持的。
如果您想从代码中设置目录,您应该查看 another log package 或 fork 包。
变量 logDir
确实存在于 glog 包中 https://github.com/golang/glog/blob/master/glog_file.go#L41
它只是没有导出。所以你可以在你的 glog 实例的源代码中改变它。有点hacky,但不难。
这是我见过的黑客:在代码中设置标志。
也非常适合从代码设置日志级别。
package main
import (
"flag"
"github.com/golang/glog"
)
func main() {
flag.Parse()
glog.Info("hi_a")
flag.Lookup("logtostderr").Value.Set("true")
glog.Info("hi_b")
flag.Lookup("log_dir").Value.Set("/path/to/log/dir")
glog.V(4).Info("v4a")
flag.Lookup("v").Value.Set("10")
glog.V(4).Info("v4b")
//etc.
}
>>> hi_b
>>> v4b
首先Glog依赖包Flag。如果您不导入它,您将在日志消息中收到烦人的警告。
如果在初始化时只需要设置一次参数就非常简单了。
flag.Set("logtostderr", "true")
flag.Parse()
glog.Infof("starting main program")
有谁知道如何set/modify golang 源代码中的日志目录? 我想在源代码中设置日志目录,而不是在 cmdline
中设置-log_dir=
glog package 是 Google 中使用的日志包的转储。 Google 使用命令行标志配置日志记录,这就是包所支持的。
如果您想从代码中设置目录,您应该查看 another log package 或 fork 包。
变量 logDir
确实存在于 glog 包中 https://github.com/golang/glog/blob/master/glog_file.go#L41
它只是没有导出。所以你可以在你的 glog 实例的源代码中改变它。有点hacky,但不难。
这是我见过的黑客:在代码中设置标志。 也非常适合从代码设置日志级别。
package main
import (
"flag"
"github.com/golang/glog"
)
func main() {
flag.Parse()
glog.Info("hi_a")
flag.Lookup("logtostderr").Value.Set("true")
glog.Info("hi_b")
flag.Lookup("log_dir").Value.Set("/path/to/log/dir")
glog.V(4).Info("v4a")
flag.Lookup("v").Value.Set("10")
glog.V(4).Info("v4b")
//etc.
}
>>> hi_b
>>> v4b
首先Glog依赖包Flag。如果您不导入它,您将在日志消息中收到烦人的警告。
如果在初始化时只需要设置一次参数就非常简单了。
flag.Set("logtostderr", "true")
flag.Parse()
glog.Infof("starting main program")