]> source.dussan.org Git - gitea.git/commitdiff
use level config in main section when subsection not set level (#15176)
authora1012112796 <1012112796@qq.com>
Sun, 28 Mar 2021 19:08:19 +0000 (03:08 +0800)
committerGitHub <noreply@github.com>
Sun, 28 Mar 2021 19:08:19 +0000 (20:08 +0100)
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>
modules/setting/log.go
modules/setting/setting.go
routers/install.go

index 9bbeee27a22e9d2b8b5d58902b26a6f85cda6c6d..44017b11383d41ddfb91aa18eba3ab87dc775942 100644 (file)
@@ -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
index 9d27a5d743222f1fa33b657f3c9e1ad42eb88706..6a9868713f3c9c536513f40afb1eae31111cbbb1 100644 (file)
@@ -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)
index 7f01738efef6cf6b2dd52210f290a691e3109e2e..1af72f2a04d2809098da83514c5cf28ad15fbb0a 100644 (file)
@@ -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")