Кто-нибудь знает, как установить/изменить каталог журнала в исходном коде golang? Я хочу, чтобы установить реж журнала в коде Souré, вместо -log_dir=
в CmdLineКак установить каталог журнала glog из кода
4
A
ответ
14
Это хак, который я видел, лежал: установите флаги в коде. Также очень хорошо подходит для настройки уровней журнала из кода.
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
3
glog package свалка пакета журнала, используемого в Google. Google настраивает ведение журнала с использованием флагов командной строки, и это то, что поддерживает пакет.
Вы должны посмотреть на another log package или направить пакет, если вы хотите установить каталог из кода.
1
Переменный logDir
действительно существует в пакете сальника https://github.com/golang/glog/blob/master/glog_file.go#L41 Он просто не экспортируется. Таким образом, вы можете изменить его в источнике вашего экземпляра glog. Это немного взломано, но не сложно.
спасибо, это хорошо –
@zhoulin: вы можете поблагодарить, принимая ответ :) – RickyA
мне было интересно, что эти методы получения и установки были для. Обратите внимание, что с помощью этого метода (без документации) вы также можете распечатать значение 'glog.Info (« Log level: », flag.Lookup (« v »). Значение). Большое спасибо. Я не думаю, что это взломать. Это предполагаемое использование. – chmike