mirror of
https://github.com/gogs/gogs.git
synced 2025-05-29 02:33:41 +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
|
; For more information about the format see http://golang.org/pkg/time/#pkg-constants
|
||||||
FORMAT =
|
FORMAT =
|
||||||
|
|
||||||
|
; General settings of loggers
|
||||||
[log]
|
[log]
|
||||||
ROOT_PATH =
|
ROOT_PATH =
|
||||||
; Can be "console" and "file", default is "console"
|
; Can be "console" and "file", default is "console"
|
||||||
@ -310,10 +311,12 @@ LEVEL = Trace
|
|||||||
|
|
||||||
; For "console" mode only
|
; For "console" mode only
|
||||||
[log.console]
|
[log.console]
|
||||||
|
; leave empty to inherit
|
||||||
LEVEL =
|
LEVEL =
|
||||||
|
|
||||||
; For "file" mode only
|
; For "file" mode only
|
||||||
[log.file]
|
[log.file]
|
||||||
|
; leave empty to inherit
|
||||||
LEVEL =
|
LEVEL =
|
||||||
; This enables automated log rotate (switch of following options)
|
; This enables automated log rotate (switch of following options)
|
||||||
LOG_ROTATE = true
|
LOG_ROTATE = true
|
||||||
@ -326,6 +329,13 @@ MAX_LINES = 1000000
|
|||||||
; Expired days of log file (delete after max days)
|
; Expired days of log file (delete after max days)
|
||||||
MAX_DAYS = 7
|
MAX_DAYS = 7
|
||||||
|
|
||||||
|
; For "slack" mode only
|
||||||
|
[log.slack]
|
||||||
|
; leave empty to inherit
|
||||||
|
LEVEL =
|
||||||
|
; Webhook URL
|
||||||
|
URL =
|
||||||
|
|
||||||
[cron]
|
[cron]
|
||||||
; Enable running cron tasks periodically.
|
; Enable running cron tasks periodically.
|
||||||
ENABLED = true
|
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.
|
// thus if user doesn't set console logger, we should remove it after other loggers are created.
|
||||||
hasConsole := false
|
hasConsole := false
|
||||||
|
|
||||||
// Get and check log mode.
|
// Get and check log modes.
|
||||||
LogModes = strings.Split(Cfg.Section("log").Key("MODE").MustString("console"), ",")
|
LogModes = strings.Split(Cfg.Section("log").Key("MODE").MustString("console"), ",")
|
||||||
LogConfigs = make([]interface{}, len(LogModes))
|
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 {
|
for i, mode := range LogModes {
|
||||||
mode = strings.ToLower(strings.TrimSpace(mode))
|
mode = strings.ToLower(strings.TrimSpace(mode))
|
||||||
sec, err := Cfg.GetSection("log." + mode)
|
sec, err := Cfg.GetSection("log." + mode)
|
||||||
@ -637,30 +644,25 @@ func newLogService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
validLevels := []string{"trace", "info", "warn", "error", "fatal"}
|
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)
|
v = strings.ToLower(v)
|
||||||
if com.IsSliceContainsStr(validLevels, v) {
|
if com.IsSliceContainsStr(validLevels, v) {
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
return "trace"
|
return "trace"
|
||||||
})
|
})
|
||||||
level := map[string]log.LEVEL{
|
level := levelNames[name]
|
||||||
"trace": log.TRACE,
|
|
||||||
"info": log.INFO,
|
|
||||||
"warn": log.WARN,
|
|
||||||
"error": log.ERROR,
|
|
||||||
"fatal": log.FATAL,
|
|
||||||
}[levelName]
|
|
||||||
|
|
||||||
// Generate log configuration.
|
// Generate log configuration.
|
||||||
switch mode {
|
switch log.MODE(mode) {
|
||||||
case "console":
|
case log.CONSOLE:
|
||||||
hasConsole = true
|
hasConsole = true
|
||||||
LogConfigs[i] = log.ConsoleConfig{
|
LogConfigs[i] = log.ConsoleConfig{
|
||||||
Level: level,
|
Level: level,
|
||||||
BufferSize: Cfg.Section("log").Key("BUFFER_LEN").MustInt64(100),
|
BufferSize: Cfg.Section("log").Key("BUFFER_LEN").MustInt64(100),
|
||||||
}
|
}
|
||||||
case "file":
|
|
||||||
|
case log.FILE:
|
||||||
logPath := path.Join(LogRootPath, "gogs.log")
|
logPath := path.Join(LogRootPath, "gogs.log")
|
||||||
if err = os.MkdirAll(path.Dir(logPath), os.ModePerm); err != nil {
|
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)
|
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),
|
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.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.
|
// Make sure everyone gets version info printed.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user