logging/logging.go
2013-06-21 18:37:09 +02:00

45 lines
715 B
Go

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)
}