有谁知道如何在golang源代码中设置/修改日志目录?
我想在源代码中设置日志目录,而不是在cmdline中设置-log_dir=
答案 0 :(得分:19)
这是我看到的hack:在代码中设置标志。 也非常适合从代码设置日志级别。
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
答案 1 :(得分:4)
glog package是Google内部使用的日志包的转储。 Google使用命令行标记配置日志记录,以及程序包支持的内容。
如果要从代码设置目录,您应该查看another log package或分叉包。
答案 2 :(得分:1)
变量logDir
确实存在于glog包https://github.com/golang/glog/blob/master/glog_file.go#L41中
它只是没有出口。因此,您可以在glog实例的源代码中进行更改。这很小,但并不难。
答案 3 :(得分:0)
首先, Glog 依赖软件包 Flag 。如果您不导入它,则日志消息中会出现令人讨厌的警告。
如果您只需要一次设置参数,这非常简单。
//where playerPosX = X of the current player node location (red mark)
//and playerPosY = Y of the current player node location (red mark)
shiftMap("svgMapID", playerPosX, playerPosY);