diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index 2d1bad945eb..8494b8112b7 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -526,6 +526,17 @@ var logLevels = map[string]int{ "Critical": 5, } +func getLogLevel(key string, defaultName string) (string, int) { + levelName := Cfg.Section(key).Key("level").In(defaultName, []string{"Trace", "Debug", "Info", "Warn", "Error", "Critical"}) + + level, ok := logLevels[levelName] + if !ok { + log.Fatal(4, "Unknown log level: %s", levelName) + } + + return levelName, level +} + func initLogging(args *CommandLineArgs) { //close any existing log handlers. log.Close() @@ -533,8 +544,12 @@ func initLogging(args *CommandLineArgs) { LogModes = strings.Split(Cfg.Section("log").Key("mode").MustString("console"), ",") LogsPath = makeAbsolute(Cfg.Section("paths").Key("logs").String(), HomePath) + defaultLevelName, _ := getLogLevel("log", "Info") + LogConfigs = make([]util.DynMap, len(LogModes)) + for i, mode := range LogModes { + mode = strings.TrimSpace(mode) sec, err := Cfg.GetSection("log." + mode) if err != nil { @@ -542,12 +557,7 @@ func initLogging(args *CommandLineArgs) { } // Log level. - levelName := Cfg.Section("log."+mode).Key("level").In("Trace", - []string{"Trace", "Debug", "Info", "Warn", "Error", "Critical"}) - level, ok := logLevels[levelName] - if !ok { - log.Fatal(4, "Unknown log level: %s", levelName) - } + _, level := getLogLevel("log."+mode, defaultLevelName) // Generate log configuration. switch mode {