Spaces:
Running
Running
package common | |
import ( | |
"log" | |
"os" | |
) | |
const ( | |
DEBUG = "DEBUG" | |
INFO = "INFO" | |
WARN = "WARN" | |
ERROR = "ERROR" | |
) | |
var LevelArry = [4]string{DEBUG, INFO, WARN, ERROR} | |
var levelMap = map[string]int{ | |
DEBUG: 0, | |
INFO: 1, | |
WARN: 2, | |
ERROR: 3, | |
} | |
type logger struct { | |
Level string | |
} | |
var Logger *logger | |
func NewLogger(level string) *logger { | |
return &logger{Level: level} | |
} | |
func (l *logger) Clone() *logger { | |
return &logger{Level: l.Level} | |
} | |
func (l *logger) Fatal(v ...interface{}) { | |
l.Info("%v", v...) | |
os.Exit(1) | |
} | |
func (l *logger) Print(level, format string, v ...interface{}) { | |
if levelMap[level] >= levelMap[l.Level] { | |
log.Printf("- "+level+" - "+format, v...) | |
} | |
} | |
func (l *logger) Println(level string, v ...interface{}) { | |
l.Print(level, "%v", v...) | |
} | |
func (l *logger) Debug(format string, v ...interface{}) { | |
l.Print(DEBUG, format, v...) | |
} | |
func (l *logger) Info(format string, v ...interface{}) { | |
l.Print(INFO, format, v...) | |
} | |
func (l *logger) Warn(format string, v ...interface{}) { | |
l.Print(WARN, format, v...) | |
} | |
func (l *logger) Error(format string, v ...interface{}) { | |
l.Print(ERROR, format, v...) | |
} | |