Remove the default console logger when it is not set in the configuration (#602) (#960)

* Remove the default console logger when it is not set in the configuration

* Added comment to new function (lint failure)

* update based on PR comments (code style)

* code style fix (thanks bkcsoft)

* check if logger exists based on the l.outputs (like in l.DelLogger) instead of adapter, otherwise panic when reinstalling gitea (since the output adapter still exist, without outputs)
This commit is contained in:
Lunny Xiao 2017-02-18 22:25:28 +08:00 committed by GitHub
parent 61cdc32496
commit 3121a7a037
2 changed files with 21 additions and 0 deletions

View File

@ -39,6 +39,17 @@ func NewLogger(bufLen int64, mode, config string) {
}
}
// DelLogger removes loggers that are for the given mode
func DelLogger(mode string) error {
for _, l := range loggers {
if _, ok := l.outputs[mode]; ok {
return l.DelLogger(mode)
}
}
Trace("Log adapter %s not found, no need to delete", mode)
return nil
}
// NewGitLogger create a logger for git
// FIXME: use same log level as other loggers.
func NewGitLogger(logPath string) {

View File

@ -765,6 +765,16 @@ func newLogService() {
LogModes = strings.Split(Cfg.Section("log").Key("MODE").MustString("console"), ",")
LogConfigs = make([]string, len(LogModes))
useConsole := false
for _, mode := range LogModes {
if mode == "console" {
useConsole = true
}
}
if (!useConsole) {
log.DelLogger("console")
}
for i, mode := range LogModes {
mode = strings.TrimSpace(mode)