From f8e93ce4238253c01e3ca36c88eb59979be99d12 Mon Sep 17 00:00:00 2001 From: Jason Song Date: Sun, 1 Jan 2023 22:00:33 +0800 Subject: [PATCH] Reminder for no more logs to console (#22282) Even if the log mode is `file`, there are still few logs printed to the console at the very beginning. That's fine but confusing. Someone will think the console is the only place to find logs, and get nothing helpful. See https://github.com/go-gitea/gitea/issues/22274#issuecomment-1367917717. There should be a reminder that there are no more logs to the console. And to avoid log loss, we should add configured loggers first, then remove console logger if there's no `console` in the mode. Tests with `MODE = file`: Before: image After: image Co-authored-by: Lunny Xiao Co-authored-by: delvh --- modules/setting/log.go | 29 ++++++++++++----------------- routers/init.go | 1 + 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/modules/setting/log.go b/modules/setting/log.go index 7372fc998..8a2d47eda 100644 --- a/modules/setting/log.go +++ b/modules/setting/log.go @@ -284,8 +284,6 @@ func newRouterLogService() { } func newLogService() { - log.Info("Gitea v%s%s", AppVer, AppBuiltWith) - options := newDefaultLogOptions() options.bufferLength = Cfg.Section("log").Key("BUFFER_LEN").MustInt64(10000) EnableSSHLog = Cfg.Section("log").Key("ENABLE_SSH_LOG").MustBool(false) @@ -297,24 +295,14 @@ func newLogService() { sections := strings.Split(Cfg.Section("log").Key("MODE").MustString("console"), ",") useConsole := false - for i := 0; i < len(sections); i++ { - sections[i] = strings.TrimSpace(sections[i]) - if sections[i] == "console" { - useConsole = true - } - } - - if !useConsole { - err := log.DelLogger("console") - if err != nil { - log.Fatal("DelLogger: %v", err) - } - } - for _, name := range sections { - if len(name) == 0 { + name = strings.TrimSpace(name) + if name == "" { continue } + if name == "console" { + useConsole = true + } sec, err := Cfg.GetSection("log." + name + ".default") if err != nil { @@ -336,6 +324,13 @@ func newLogService() { AddLogDescription(log.DEFAULT, &description) + if !useConsole { + log.Info("According to the configuration, subsequent logs will not be printed to the console") + if err := log.DelLogger("console"); err != nil { + log.Fatal("Cannot delete console logger: %v", err) + } + } + // Finally redirect the default golog to here golog.SetFlags(0) golog.SetPrefix("") diff --git a/routers/init.go b/routers/init.go index 670191deb..61af51222 100644 --- a/routers/init.go +++ b/routers/init.go @@ -119,6 +119,7 @@ func GlobalInitInstalled(ctx context.Context) { log.Info("Log path: %s", setting.LogRootPath) log.Info("Configuration file: %s", setting.CustomConf) log.Info("Run Mode: %s", util.ToTitleCase(setting.RunMode)) + log.Info("Gitea v%s%s", setting.AppVer, setting.AppBuiltWith) // Setup i18n translation.InitLocales(ctx)