|
@@ -28,12 +28,19 @@ type logConf struct {
|
|
|
|
|
|
var Log *logConf
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
-func initLogConf(cfg *ini.File) (_ *logConf, hasConsole bool, _ error) {
|
|
|
+func initLogConf(cfg *ini.File, hookMode bool) (_ *logConf, hasConsole bool, _ error) {
|
|
|
rootPath := cfg.Section("log").Key("ROOT_PATH").MustString(filepath.Join(WorkDir(), "log"))
|
|
|
+ if hookMode {
|
|
|
+ return &logConf{
|
|
|
+ RootPath: ensureAbs(rootPath),
|
|
|
+ }, false, nil
|
|
|
+ }
|
|
|
+
|
|
|
modes := strings.Split(cfg.Section("log").Key("MODE").MustString("console"), ",")
|
|
|
lc := &logConf{
|
|
|
RootPath: ensureAbs(rootPath),
|
|
@@ -118,12 +125,24 @@ func initLogConf(cfg *ini.File) (_ *logConf, hasConsole bool, _ error) {
|
|
|
return lc, hasConsole, nil
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-func InitLogging() {
|
|
|
- logConf, hasConsole, err := initLogConf(File)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func InitLogging(hookMode bool) {
|
|
|
+ logConf, hasConsole, err := initLogConf(File, hookMode)
|
|
|
if err != nil {
|
|
|
log.Fatal("Failed to init logging configuration: %v", err)
|
|
|
}
|
|
|
+ defer func() {
|
|
|
+ if !hasConsole {
|
|
|
+ log.Remove(log.DefaultConsoleName)
|
|
|
+ }
|
|
|
+ Log = logConf
|
|
|
+ }()
|
|
|
+
|
|
|
+ if hookMode {
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
err = os.MkdirAll(logConf.RootPath, os.ModePerm)
|
|
|
if err != nil {
|
|
@@ -158,10 +177,4 @@ func InitLogging() {
|
|
|
}
|
|
|
log.Trace("Log mode: %s (%s)", strings.Title(mode), strings.Title(strings.ToLower(level.String())))
|
|
|
}
|
|
|
-
|
|
|
- if !hasConsole {
|
|
|
- log.Remove(log.DefaultConsoleName)
|
|
|
- }
|
|
|
-
|
|
|
- Log = logConf
|
|
|
}
|