go-proxy-bingai/common/logger.go
2024-03-02 15:10:29 +08:00

68 lines
1.1 KiB
Go

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