Forked from
asapo / asapo
2125 commits behind the upstream repository.
-
Sergey Yakubov authoredSergey Yakubov authored
logger.go 1.08 KiB
package logger
import (
"errors"
"strings"
)
type Level uint32
//log levels
const (
InfoLevel = iota
DebugLevel
ErrorLevel
WarnLevel
FatalLevel
)
type Logger interface {
Info(args ...interface{})
Debug(args ...interface{})
Fatal(args ...interface{})
Warning(args ...interface{})
Error(args ...interface{})
SetLevel(level Level)
}
var my_logger Logger = &logRusLogger{}
func Info(args ...interface{}) {
my_logger.Info(args...)
}
func Debug(args ...interface{}) {
my_logger.Debug(args...)
}
func Warning(args ...interface{}) {
my_logger.Warning(args...)
}
func Error(args ...interface{}) {
my_logger.Error(args...)
}
func Fatal(args ...interface{}) {
my_logger.Fatal(args...)
}
func SetLevel(level Level) {
my_logger.SetLevel(level)
}
func LevelFromString(str string) (Level, error) {
switch strings.ToLower(str) {
case "debug":
return DebugLevel, nil
case "info":
return InfoLevel, nil
case "warning":
return WarnLevel, nil
case "error":
return ErrorLevel, nil
case "fatal", "none":
return FatalLevel, nil
}
return FatalLevel, errors.New("wrong log level")
}