From 460aa3eaa96df483981e74a6992878941f11bf00 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 19 Mar 2014 03:24:17 -0400 Subject: [PATCH] optimize log --- .gitignore | 2 +- conf/app.ini | 58 +++++++++++++++++++++++++++++++++++++++++--- modules/base/conf.go | 30 +++++++++++++++-------- modules/log/log.go | 2 +- 4 files changed, 77 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 6559d61a06d..3e550c3fc7b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ gogs *.db *.log custom/ -.vendor/ +.vendor/ \ No newline at end of file diff --git a/conf/app.ini b/conf/app.ini index 5dc21a676e4..e42fc244326 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -2,7 +2,7 @@ APP_NAME = Gogs: Go Git Service ; !!MUST CHANGE TO YOUR USER NAME!! RUN_USER = lunny -; Either "dev", "prod" or "test", based on martini +; Either "dev", "prod" or "test", default is "dev" RUN_MODE = dev [repository] @@ -32,9 +32,61 @@ USER_PASSWD_SALT = !#@FDEWREWR&*( [mailer] ENABLED = false ; Name displayed in mail title -NAME = %(APP_NAME)s +SUBJECT = %(APP_NAME)s ; Mail server HOST = ; Mailer user name and password USER = -PASSWD = \ No newline at end of file +PASSWD = + +[log] +; Either "console", "file", "conn" or "smtp", default is "console" +MODE = console +; Buffer length of channel, keep it as it is if you don't know what it is. +BUFFER_LEN = 10000 +; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace" +LEVEL = Trace + +; For "console" mode only, all log files will be stored in "/log" directory +[log.console] +LEVEL = + +; For "file" mode only +[log.file] +LEVEL = +FILE_NAME = "gogs.log" +; This enables automated log rotate(switch of following options), default is true +LOG_ROTATE = +; Max line number of single file, default is 1000000 +MAX_LINES = 1000000 +; Max size of single file, default is 1 << 28, 256MB +MAX_SIZE = 1 << 28 +; Segment log daily, default is true +DAILY_ROTATE = true +; Expired days of log file(delete after max days), default is 7 +MAX_DAYS = 7 + +; For "conn" mode only +[log.conn] +LEVEL = +; Reconnect host for every single message, default is false +RECONNECT_ON_MSG = false +; Try to reconnect when connection is lost, default is false +RECONNECT = false +; Either "tcp", "unix" or "udp", default is "tcp" +PROTOCOL = tcp +; Host address +ADDR = + +; For "smtp" mode only +[log.smtp] +LEVEL = +; Name displayed in mail title, default is "Diagnostic message from serve" +SUBJECT = Diagnostic message from serve +; Mail server +HOST = +; Mailer user name and password +USER = +PASSWD = +; Receivers, can be one or more +RECEIVERS = \ No newline at end of file diff --git a/modules/base/conf.go b/modules/base/conf.go index 83c7f8872d7..1aafd5b44a3 100644 --- a/modules/base/conf.go +++ b/modules/base/conf.go @@ -44,6 +44,23 @@ func exeDir() (string, error) { return path.Dir(p), nil } +func newLogService() { + log.NewLogger() +} + +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 +89,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 0634bde655d..b888f5002e5 100644 --- a/modules/log/log.go +++ b/modules/log/log.go @@ -11,7 +11,7 @@ import ( var logger *logs.BeeLogger -func init() { +func NewLogger() { logger = logs.NewLogger(10000) logger.SetLogger("console", "") }