vncproxy/logger/logger.go

188 lines
3.9 KiB
Go

package logger
import "fmt"
var simpleLogger = SimpleLogger{LogLevelInfo}
func SetLogLevel(logLevel string) {
level := GetLogLevel(logLevel)
fmt.Println("Log level set to: ", logLevel)
simpleLogger = SimpleLogger{level}
}
func GetLogLevel(logLevel string) LogLevel {
switch logLevel {
case "trace":
return LogLevelTrace
case "debug":
return LogLevelDebug
case "info":
return LogLevelInfo
case "warn":
return LogLevelWarn
case "error":
return LogLevelError
case "fatal":
return LogLevelFatal
}
return LogLevelInfo
}
type Logger interface {
Debug(v ...interface{})
Debugf(format string, v ...interface{})
Info(v ...interface{})
Infof(format string, v ...interface{})
Warn(v ...interface{})
Warnf(format string, v ...interface{})
Error(v ...interface{})
Errorf(format string, v ...interface{})
Fatal(v ...interface{})
Fatalf(format string, v ...interface{})
}
type LogLevel int
const (
LogLevelTrace LogLevel = iota
LogLevelDebug
LogLevelInfo
LogLevelWarn
LogLevelError
LogLevelFatal
)
type SimpleLogger struct {
level LogLevel
}
func (sl *SimpleLogger) Trace(v ...interface{}) {
if sl.level <= LogLevelTrace {
arr := []interface{}{"[Trace]"}
for _, item := range v {
arr = append(arr, item)
}
fmt.Println(arr...)
}
}
func (sl *SimpleLogger) Tracef(format string, v ...interface{}) {
if sl.level <= LogLevelTrace {
fmt.Printf("[Trace] "+format+"\n", v...)
}
}
func (sl *SimpleLogger) Debug(v ...interface{}) {
if sl.level <= LogLevelDebug {
arr := []interface{}{"[Debug]"}
for _, item := range v {
arr = append(arr, item)
}
fmt.Println(arr...)
}
}
func (sl *SimpleLogger) Debugf(format string, v ...interface{}) {
if sl.level <= LogLevelDebug {
fmt.Printf("[Debug] "+format+"\n", v...)
}
}
func (sl *SimpleLogger) Info(v ...interface{}) {
if sl.level <= LogLevelInfo {
arr := []interface{}{"[Info ]"}
for _, item := range v {
arr = append(arr, item)
}
fmt.Println(arr...)
}
}
func (sl *SimpleLogger) Infof(format string, v ...interface{}) {
if sl.level <= LogLevelInfo {
fmt.Printf("[Info ] "+format+"\n", v...)
}
}
func (sl *SimpleLogger) Warn(v ...interface{}) {
if sl.level <= LogLevelWarn {
arr := []interface{}{"[Warn ]"}
for _, item := range v {
arr = append(arr, item)
}
fmt.Println(arr...)
}
}
func (sl *SimpleLogger) Warnf(format string, v ...interface{}) {
if sl.level <= LogLevelWarn {
fmt.Printf("[Warn ] "+format+"\n", v...)
}
}
func (sl *SimpleLogger) Error(v ...interface{}) {
if sl.level <= LogLevelError {
arr := []interface{}{"[Error]"}
for _, item := range v {
arr = append(arr, item)
}
fmt.Println(arr...)
}
}
func (sl *SimpleLogger) Errorf(format string, v ...interface{}) {
if sl.level <= LogLevelError {
fmt.Printf("[Error] "+format+"\n", v...)
}
}
func (sl *SimpleLogger) Fatal(v ...interface{}) {
if sl.level <= LogLevelFatal {
arr := []interface{}{"[Fatal]"}
for _, item := range v {
arr = append(arr, item)
}
fmt.Println(arr...)
}
}
func (sl *SimpleLogger) Fatalf(format string, v ...interface{}) {
if sl.level <= LogLevelFatal {
fmt.Printf("[Fatal] "+format+"\n", v)
}
}
func Debug(v ...interface{}) {
simpleLogger.Debug(v...)
}
func Debugf(format string, v ...interface{}) {
simpleLogger.Debugf(format, v...)
}
func Trace(v ...interface{}) {
simpleLogger.Trace(v...)
}
func Tracef(format string, v ...interface{}) {
simpleLogger.Tracef(format, v...)
}
func Info(v ...interface{}) {
simpleLogger.Info(v...)
}
func Infof(format string, v ...interface{}) {
simpleLogger.Infof(format, v...)
}
func Warn(v ...interface{}) {
simpleLogger.Warn(v...)
}
func Warnf(format string, v ...interface{}) {
simpleLogger.Warnf(format, v...)
}
func Error(v ...interface{}) {
simpleLogger.Error(v...)
}
func Errorf(format string, v ...interface{}) {
simpleLogger.Errorf(format, v...)
}
func Fatal(v ...interface{}) {
simpleLogger.Fatal(v...)
}
func Fatalf(format string, v ...interface{}) {
simpleLogger.Fatalf(format, v...)
}