package logger import ( "github.com/cihub/seelog" "gopkg.in/macaron.v1" "fmt" "os" ) // 日志库 type Level int8 var logger seelog.LoggerInterface const ( DEBUG = iota INFO WARN ERROR FATAL ) func InitLogger() { config := getLogConfig() l, err := seelog.LoggerFromConfigAsString(config) if err != nil { panic(err) } logger = l } func Debug(v ...interface{}) { write(DEBUG, v) } func Info(v ...interface{}) { write(INFO, v) } func Warn(v ...interface{}) { write(WARN, v) } func Error(v ...interface{}) { write(ERROR, v) } func Fatal(v ...interface{}) { write(FATAL, v) } func write(level Level, v ...interface{}) { defer logger.Flush() switch level { case DEBUG: logger.Debug(v) case INFO: logger.Info(v) case WARN: logger.Warn(v) case FATAL: logger.Critical(v) os.Exit(1) case ERROR: logger.Error(v) } } func getLogConfig() string { config := ` %s ` consoleConfig := "" if macaron.Env == macaron.DEV { consoleConfig = ` ` } config = fmt.Sprintf(config, consoleConfig) return config }