diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2014-03-19 16:43:24 +0800 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2014-03-19 16:43:24 +0800 |
commit | 2513dab2b038d4fed3983d49c448300eccb924f9 (patch) | |
tree | 370060f6d8100a2e5ae892bfd1ff1dfae7929a4a /modules | |
parent | 7076f466c9491b07be272d4680cfea5ed839b855 (diff) | |
parent | b192b70aecbe3b91affd9d9396669ed000a936d6 (diff) |
Merge branch 'master' of github.com:gogits/gogs
Diffstat (limited to 'modules')
-rw-r--r-- | modules/base/conf.go | 83 | ||||
-rw-r--r-- | modules/log/log.go | 6 |
2 files changed, 76 insertions, 13 deletions
diff --git a/modules/base/conf.go b/modules/base/conf.go index 83c7f887..6610bce1 100644 --- a/modules/base/conf.go +++ b/modules/base/conf.go @@ -44,6 +44,76 @@ func exeDir() (string, error) { return path.Dir(p), nil } +var logLevels = map[string]string{ + "Trace": "0", + "Debug": "1", + "Info": "2", + "Warn": "3", + "Error": "4", + "Critical": "5", +} + +func newLogService() { + // Get and check log mode. + mode := Cfg.MustValue("log", "MODE", "console") + modeSec := "log." + mode + if _, err := Cfg.GetSection(modeSec); err != nil { + fmt.Printf("Unknown log mode: %s\n", mode) + os.Exit(2) + } + + // Log level. + level, ok := logLevels[Cfg.MustValue("log."+mode, "LEVEL", "Trace")] + if !ok { + fmt.Printf("Unknown log level: %s\n", Cfg.MustValue("log."+mode, "LEVEL", "Trace")) + os.Exit(2) + } + + // Generate log configuration. + var config string + switch mode { + case "console": + config = fmt.Sprintf(`{"level":%s}`, level) + case "file": + config = fmt.Sprintf( + `{"level":%s,"filename":%s,"rotate":%v,"maxlines":%d,"maxsize",%d,"daily":%v,"maxdays":%d}`, level, + Cfg.MustValue(modeSec, "FILE_NAME", "log/gogs.log"), + Cfg.MustBool(modeSec, "LOG_ROTATE", true), + Cfg.MustInt(modeSec, "MAX_LINES", 1000000), + 1<<uint(Cfg.MustInt(modeSec, "MAX_SIZE_SHIFT", 28)), + Cfg.MustBool(modeSec, "DAILY_ROTATE", true), + Cfg.MustInt(modeSec, "MAX_DAYS", 7)) + case "conn": + config = fmt.Sprintf(`{"level":%s,"reconnectOnMsg":%v,"reconnect":%v,"net":%s,"addr":%s}`, level, + Cfg.MustBool(modeSec, "RECONNECT_ON_MSG", false), + Cfg.MustBool(modeSec, "RECONNECT", false), + Cfg.MustValue(modeSec, "PROTOCOL", "tcp"), + Cfg.MustValue(modeSec, "ADDR", ":7020")) + case "smtp": + config = fmt.Sprintf(`{"level":%s,"username":%s,"password":%s,"host":%s,"sendTos":%s,"subject":%s}`, level, + Cfg.MustValue(modeSec, "USER", "example@example.com"), + Cfg.MustValue(modeSec, "PASSWD", "******"), + Cfg.MustValue(modeSec, "HOST", "127.0.0.1:25"), + Cfg.MustValue(modeSec, "RECEIVERS", "[]"), + Cfg.MustValue(modeSec, "SUBJECT", "Diagnostic message from serve")) + } + + log.NewLogger(Cfg.MustInt64("log", "BUFFER_LEN", 10000), mode, config) +} + +func newMailService() { + // Check mailer setting. + if Cfg.MustBool("mailer", "ENABLED") { + MailService = &Mailer{ + Name: Cfg.MustValue("mailer", "NAME", AppName), + Host: Cfg.MustValue("mailer", "HOST", "127.0.0.1:25"), + User: Cfg.MustValue("mailer", "USER", "example@example.com"), + Passwd: Cfg.MustValue("mailer", "PASSWD", "******"), + } + log.Info("Mail Service Enabled") + } +} + func init() { var err error workDir, err := exeDir() @@ -72,14 +142,7 @@ func init() { AppName = Cfg.MustValue("", "APP_NAME", "Gogs: Go Git Service") Domain = Cfg.MustValue("server", "DOMAIN") - // Check mailer setting. - if Cfg.MustBool("mailer", "ENABLED") { - MailService = &Mailer{ - Name: Cfg.MustValue("mailer", "NAME", AppName), - Host: Cfg.MustValue("mailer", "HOST", "127.0.0.1:25"), - User: Cfg.MustValue("mailer", "USER", "example@example.com"), - Passwd: Cfg.MustValue("mailer", "PASSWD", "******"), - } - log.Info("Mail Service Enabled") - } + // Extensions. + newLogService() + newMailService() } diff --git a/modules/log/log.go b/modules/log/log.go index 0634bde6..29782fb2 100644 --- a/modules/log/log.go +++ b/modules/log/log.go @@ -11,9 +11,9 @@ import ( var logger *logs.BeeLogger -func init() { - logger = logs.NewLogger(10000) - logger.SetLogger("console", "") +func NewLogger(bufLen int64, mode, config string) { + logger = logs.NewLogger(bufLen) + logger.SetLogger(mode, config) } func Trace(format string, v ...interface{}) { |