forked from NYANDEV/forgejo
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 <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
parent
82d1a7fb17
commit
3273fb9af1
3 changed files with 8 additions and 9 deletions
|
@ -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")
|
||||
|
||||
|
|
Loading…
Reference in a new issue