mirror of
https://github.com/gogs/gogs.git
synced 2025-05-31 11:42:13 +00:00
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
This commit is contained in:
parent
76879e977b
commit
d9d329bec8
10
conf/app.ini
10
conf/app.ini
@ -298,6 +298,7 @@ MAX_FILES = 5
|
||||
; For more information about the format see http://golang.org/pkg/time/#pkg-constants
|
||||
FORMAT =
|
||||
|
||||
; General settings of loggers
|
||||
[log]
|
||||
ROOT_PATH =
|
||||
; Can be "console" and "file", default is "console"
|
||||
@ -310,10 +311,12 @@ LEVEL = Trace
|
||||
|
||||
; For "console" mode only
|
||||
[log.console]
|
||||
; leave empty to inherit
|
||||
LEVEL =
|
||||
|
||||
; For "file" mode only
|
||||
[log.file]
|
||||
; leave empty to inherit
|
||||
LEVEL =
|
||||
; This enables automated log rotate (switch of following options)
|
||||
LOG_ROTATE = true
|
||||
@ -326,6 +329,13 @@ MAX_LINES = 1000000
|
||||
; Expired days of log file (delete after max days)
|
||||
MAX_DAYS = 7
|
||||
|
||||
; For "slack" mode only
|
||||
[log.slack]
|
||||
; leave empty to inherit
|
||||
LEVEL =
|
||||
; Webhook URL
|
||||
URL =
|
||||
|
||||
[cron]
|
||||
; Enable running cron tasks periodically.
|
||||
ENABLED = true
|
||||
|
File diff suppressed because one or more lines are too long
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user