diff options
author | Unknwon <u@gogs.io> | 2017-02-09 23:53:57 -0500 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2017-02-09 23:53:57 -0500 |
commit | d9d329bec8984723dfad97d496278c4c9e35d5d5 (patch) | |
tree | 5498b2ddb400cf956e66053b77c1837ae676ccf8 /modules/setting/setting.go | |
parent | 76879e977b1cb563eff458d9efdd0f4ec3ca163a (diff) |
modules/setting: add Slack logger
Conn and email loggers are removed for now unless people requested
for them, then try to add back in gopkg.in/clog.v1
Diffstat (limited to 'modules/setting/setting.go')
-rw-r--r-- | modules/setting/setting.go | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/modules/setting/setting.go b/modules/setting/setting.go index d5cb0b7c..b5c6d9c9 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -626,9 +626,16 @@ func newLogService() { // thus if user doesn't set console logger, we should remove it after other loggers are created. hasConsole := false - // Get and check log mode. + // Get and check log modes. LogModes = strings.Split(Cfg.Section("log").Key("MODE").MustString("console"), ",") LogConfigs = make([]interface{}, len(LogModes)) + levelNames := map[string]log.LEVEL{ + "trace": log.TRACE, + "info": log.INFO, + "warn": log.WARN, + "error": log.ERROR, + "fatal": log.FATAL, + } for i, mode := range LogModes { mode = strings.ToLower(strings.TrimSpace(mode)) sec, err := Cfg.GetSection("log." + mode) @@ -637,30 +644,25 @@ func newLogService() { } validLevels := []string{"trace", "info", "warn", "error", "fatal"} - levelName := Cfg.Section("log." + mode).Key("LEVEL").Validate(func(v string) string { + name := Cfg.Section("log." + mode).Key("LEVEL").Validate(func(v string) string { v = strings.ToLower(v) if com.IsSliceContainsStr(validLevels, v) { return v } return "trace" }) - level := map[string]log.LEVEL{ - "trace": log.TRACE, - "info": log.INFO, - "warn": log.WARN, - "error": log.ERROR, - "fatal": log.FATAL, - }[levelName] + level := levelNames[name] // Generate log configuration. - switch mode { - case "console": + switch log.MODE(mode) { + case log.CONSOLE: hasConsole = true LogConfigs[i] = log.ConsoleConfig{ Level: level, BufferSize: Cfg.Section("log").Key("BUFFER_LEN").MustInt64(100), } - case "file": + + case log.FILE: logPath := path.Join(LogRootPath, "gogs.log") if err = os.MkdirAll(path.Dir(logPath), os.ModePerm); err != nil { log.Fatal(4, "Fail to create log directory '%s': %v", path.Dir(logPath), err) @@ -678,10 +680,17 @@ func newLogService() { MaxDays: sec.Key("MAX_DAYS").MustInt64(7), }, } + + case log.SLACK: + LogConfigs[i] = log.SlackConfig{ + Level: level, + BufferSize: Cfg.Section("log").Key("BUFFER_LEN").MustInt64(100), + URL: sec.Key("URL").String(), + } } log.New(log.MODE(mode), LogConfigs[i]) - log.Trace("Log Mode: %s (%s)", strings.Title(mode), strings.Title(levelName)) + log.Trace("Log Mode: %s (%s)", strings.Title(mode), strings.Title(name)) } // Make sure everyone gets version info printed. |