diff --git a/models/model.go b/models/model.go index cbcbb32..864935e 100644 --- a/models/model.go +++ b/models/model.go @@ -68,7 +68,7 @@ func CreateDb() *xorm.Engine { dsn := getDbEngineDSN(config["engine"], config) engine, err := xorm.NewEngine(config["engine"], dsn) if err != nil { - panic(err) + logger.Fatal("创建xorm引擎失败", err) } if config["prefix"] != "" { // 设置表前缀 @@ -125,11 +125,11 @@ func keepDbAlived(engine *xorm.Engine) { func getDbConfig() map[string]string { config, err := setting.Read(app.AppConfig) if err != nil { - logger.Fatal(err) + logger.Fatal("获取应用配置失败", err) } section := config.Section("db") if err != nil { - logger.Fatal(err) + logger.Fatal("获取DB配置失败", err) } var db map[string]string = make(map[string]string) db["user"] = section.Key("user").String() diff --git a/modules/logger/logger.go b/modules/logger/logger.go index 1bb43dc..eaf2f6c 100644 --- a/modules/logger/logger.go +++ b/modules/logger/logger.go @@ -5,6 +5,7 @@ import ( "gopkg.in/macaron.v1" "fmt" "os" + "runtime" ) // 日志库 @@ -31,10 +32,16 @@ func InitLogger() { } func Debug(v ...interface{}) { + if macaron.Env != macaron.DEV { + return + } write(DEBUG, v) } func Debugf(format string, v ...interface{}) { + if macaron.Env != macaron.DEV { + return + } writef(DEBUG, format, v...) } @@ -73,24 +80,38 @@ func Fatalf(format string, v ...interface{}) { func write(level Level, v ...interface{}) { defer logger.Flush() + content := "" + pc, file, line, ok := runtime.Caller(2) + if ok { + content = fmt.Sprintf("#%s#%s#%d行#", file, runtime.FuncForPC(pc).Name(), line) + } + switch level { case DEBUG: - logger.Debug(v) + logger.Debug(content, v) case INFO: - logger.Info(v) + logger.Info(content, v) case WARN: - logger.Warn(v) + logger.Warn(content, v) case FATAL: - logger.Critical(v) + logger.Critical(content, v) os.Exit(1) case ERROR: - logger.Error(v) + logger.Error(content, v) } } func writef(level Level, format string, v ...interface{}) { defer logger.Flush() + content := "" + pc, file, line, ok := runtime.Caller(2) + if ok { + content = fmt.Sprintf("#%s#%s#%d行#", file, runtime.FuncForPC(pc).Name(), line) + } + + format = content + format + switch level { case DEBUG: logger.Debugf(format, v...)