|
|
@@ -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 {
|