From 3273fb9af18b9356d3c472bf23e9fbb8c7d681f3 Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Mon, 29 Mar 2021 03:08:19 +0800 Subject: [PATCH] use level config in main section when subsection not set level (#15176) in previouse if a log subsetcion not set level it will use ``info`` as default value. this pr will make default value (``[log] -> LEVEL``) useable. example config: ```INI [log] MODE = console LEVEL = Trace [log.console] LEVEL = STDERR = false ``` previous result: ```JSON // console: { "level": "info", ................... } ``` after change: ```JSON // console: { "level": "track", ................... } ``` Signed-off-by: a1012112796 <1012112796@qq.com> Co-authored-by: zeripath Co-authored-by: Lauris BH --- modules/setting/log.go | 11 +++++------ modules/setting/setting.go | 4 ++-- routers/install.go | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/modules/setting/log.go b/modules/setting/log.go index 9bbeee27a2..44017b1138 100644 --- a/modules/setting/log.go +++ b/modules/setting/log.go @@ -94,7 +94,7 @@ type defaultLogOptions struct { func newDefaultLogOptions() defaultLogOptions { return defaultLogOptions{ - levelName: LogLevel, + levelName: LogLevel.String(), flags: "stdflags", filename: filepath.Join(LogRootPath, "gitea.log"), bufferLength: 10000, @@ -115,9 +115,9 @@ type LogDescription struct { SubLogDescriptions []SubLogDescription } -func getLogLevel(section *ini.Section, key string, defaultValue string) string { - value := section.Key(key).MustString("info") - return log.FromString(value).String() +func getLogLevel(section *ini.Section, key string, defaultValue log.Level) log.Level { + value := section.Key(key).MustString(defaultValue.String()) + return log.FromString(value) } func getStacktraceLogLevel(section *ini.Section, key string, defaultValue string) string { @@ -126,8 +126,7 @@ func getStacktraceLogLevel(section *ini.Section, key string, defaultValue string } func generateLogConfig(sec *ini.Section, name string, defaults defaultLogOptions) (mode, jsonConfig, levelName string) { - levelName = getLogLevel(sec, "LEVEL", LogLevel) - level := log.FromString(levelName) + level := getLogLevel(sec, "LEVEL", LogLevel) stacktraceLevelName := getStacktraceLogLevel(sec, "STACKTRACE_LEVEL", StacktraceLogLevel) stacktraceLevel := log.FromString(stacktraceLevelName) mode = name diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 9d27a5d743..6a9868713f 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -304,7 +304,7 @@ var ( } // Log settings - LogLevel string + LogLevel log.Level StacktraceLogLevel string LogRootPath string DisableRouterLog bool @@ -553,7 +553,7 @@ func NewContext() { } homeDir = strings.ReplaceAll(homeDir, "\\", "/") - LogLevel = getLogLevel(Cfg.Section("log"), "LEVEL", "Info") + LogLevel = getLogLevel(Cfg.Section("log"), "LEVEL", log.INFO) StacktraceLogLevel = getStacktraceLogLevel(Cfg.Section("log"), "STACKTRACE_LEVEL", "None") LogRootPath = Cfg.Section("log").Key("ROOT_PATH").MustString(path.Join(AppWorkPath, "log")) forcePathSeparator(LogRootPath) diff --git a/routers/install.go b/routers/install.go index 7f01738efe..1af72f2a04 100644 --- a/routers/install.go +++ b/routers/install.go @@ -373,7 +373,7 @@ func InstallPost(ctx *context.Context) { cfg.Section("session").Key("PROVIDER").SetValue("file") cfg.Section("log").Key("MODE").SetValue("console") - cfg.Section("log").Key("LEVEL").SetValue(setting.LogLevel) + cfg.Section("log").Key("LEVEL").SetValue(setting.LogLevel.String()) cfg.Section("log").Key("ROOT_PATH").SetValue(form.LogRootPath) cfg.Section("log").Key("ROUTER").SetValue("console")