package logging import ( "fmt" "strings" ) var logger *Logger type Level byte const ( DEBUG Level = iota INFO WARNING ERROR CRITICAL FATAL DEFAULT_LEVEL = INFO ) var levelNames = [6]string{"DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL", "FATAL"} func (l Level) Name() string { return levelNames[l] } type Formatter func(*Record) string func GetLogger() (l *Logger) { return logger } var defaultFormatter Formatter = func(r *Record) string { return fmt.Sprintf("%s [%s] %s\n", r.Timestamp.Format("2006/01/02 15:04:05"), r.Level.Name(), strings.TrimSpace(r.Message)) } func init() { logger = NewLogger() backend := NewStdoutBackend() logger.AddBackend(backend) logger.SetLevel(DEBUG) }