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: a101211279
<1012112796@qq.com>
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: Lauris BH <lauris@nix.lv>
tags/v1.15.0-rc1
@@ -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 |
@@ -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) |
@@ -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") | |||