81 lines
1.3 KiB
Go
81 lines
1.3 KiB
Go
|
package log
|
||
|
|
||
|
import "strings"
|
||
|
|
||
|
const (
|
||
|
TraceLevel int = iota + 1
|
||
|
DebugLevel
|
||
|
InfoLevel
|
||
|
WarnLevel
|
||
|
ErrorLevel
|
||
|
FatalLevel
|
||
|
PanicLevel
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
lvText = map[int]string{
|
||
|
TraceLevel: "TRACE",
|
||
|
DebugLevel: "DEBUG",
|
||
|
InfoLevel: "INFO",
|
||
|
WarnLevel: "WARN",
|
||
|
ErrorLevel: "ERROR",
|
||
|
FatalLevel: "FATAL",
|
||
|
PanicLevel: "PANIC",
|
||
|
}
|
||
|
)
|
||
|
|
||
|
type Logger interface {
|
||
|
SetLevel(int)
|
||
|
Prefix(string)
|
||
|
Print(i ...interface{})
|
||
|
Printf(format string, args ...interface{})
|
||
|
Debug(i ...interface{})
|
||
|
Debugf(format string, args ...interface{})
|
||
|
Info(i ...interface{})
|
||
|
Infof(format string, args ...interface{})
|
||
|
Warn(i ...interface{})
|
||
|
Warnf(format string, args ...interface{})
|
||
|
Error(i ...interface{})
|
||
|
Errorf(format string, args ...interface{})
|
||
|
Fatal(i ...interface{})
|
||
|
Fatalf(format string, args ...interface{})
|
||
|
Panic(i ...interface{})
|
||
|
Panicf(format string, args ...interface{})
|
||
|
}
|
||
|
|
||
|
func getLevelText(lv int) string {
|
||
|
if s, ok := lvText[lv]; ok {
|
||
|
return s
|
||
|
} else {
|
||
|
return "TRACE"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func FormatLevel(lv int) string {
|
||
|
return getLevelText(lv)
|
||
|
}
|
||
|
|
||
|
func ParseLevel(s string) (lv int) {
|
||
|
lv = DebugLevel
|
||
|
s = strings.ToUpper(s)
|
||
|
for k, v := range lvText {
|
||
|
if s == v {
|
||
|
lv = k
|
||
|
return
|
||
|
}
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func ParseLevelWithoutDefault(s string) (lv int) {
|
||
|
lv = -1
|
||
|
s = strings.ToUpper(s)
|
||
|
for k, v := range lvText {
|
||
|
if s == v {
|
||
|
lv = k
|
||
|
return
|
||
|
}
|
||
|
}
|
||
|
return
|
||
|
}
|