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
}