package server
import (
pkglog "log"
)
type Logger interface {
Debugf(format string, args ...interface{})
Infof(format string, args ...interface{})
Errorf(format string, args ...interface{})
}
type LogLevel int
const (
DebugLevel LogLevel = 3
InfoLevel LogLevel = 2
WarnLevel LogLevel = 1
ErrLevel LogLevel = 0
NoLevel LogLevel = -1
)
func NewLogger(lev LogLevel) Logger {
return &defaultLog{Level: lev}
}
type defaultLog struct {
Level LogLevel
}
func (l defaultLog) Debugf(format string, args ...interface{}) {
if l.Level >= 3 {
pkglog.Printf("[DEBG] "+format+"\n", args...)
}
}
func (l defaultLog) Infof(format string, args ...interface{}) {
if l.Level >= 2 {
pkglog.Printf("[INFO] "+format+"\n", args...)
}
}
func (l defaultLog) Warningf(format string, args ...interface{}) {
if l.Level >= 1 {
pkglog.Printf("[WARN] "+format+"\n", args...)
}
}
func (l defaultLog) Errorf(format string, args ...interface{}) {
if l.Level >= 0 {
pkglog.Printf("[ERR] "+format+"\n", args...)
}
}
func (l defaultLog) Info(i interface{}) {
l.Infof("%+v", i)
}
func (l defaultLog) Error(i interface{}) {
l.Errorf("%+v", i)
}
func (l defaultLog) Close() {
}