diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index d0c5bc717c1..46f98e32efe 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -5,11 +5,11 @@ package setting import ( "bytes" + "encoding/json" "fmt" "net/url" "os" "path" - "encoding/json" "path/filepath" "regexp" "runtime" @@ -54,7 +54,7 @@ var ( // Log settings. LogModes []string - LogConfigs []string + LogConfigs []util.DynMap // Http server options Protocol Scheme @@ -420,7 +420,7 @@ func initLogging(args *CommandLineArgs) { LogModes = strings.Split(Cfg.Section("log").Key("mode").MustString("console"), ",") LogsPath = makeAbsolute(Cfg.Section("paths").Key("logs").String(), HomePath) - LogConfigs = make([]string, len(LogModes)) + LogConfigs = make([]util.DynMap, len(LogModes)) for i, mode := range LogModes { mode = strings.TrimSpace(mode) sec, err := Cfg.GetSection("log." + mode) @@ -436,53 +436,49 @@ func initLogging(args *CommandLineArgs) { log.Fatal(4, "Unknown log level: %s", levelName) } - var logCfg util.DynMap - // Generate log configuration. switch mode { case "console": - logCfg = util.DynMap{"level": level} + LogConfigs[i] = util.DynMap{"level": level} case "file": logPath := sec.Key("file_name").MustString(filepath.Join(LogsPath, "grafana.log")) os.MkdirAll(filepath.Dir(logPath), os.ModePerm) - logCfg = util.DynMap{ - "level": level, + LogConfigs[i] = util.DynMap{ + "level": level, "filename": logPath, - "rotate": sec.Key("log_rotate").MustBool(true), + "rotate": sec.Key("log_rotate").MustBool(true), "maxlines": sec.Key("max_lines").MustInt(1000000), - "maxsize": 1<