anylink/common/log.go

74 lines
1.1 KiB
Go

package common
import (
"log"
"os"
)
const (
debug = iota
info
error
fatal
)
var Log *logger
type logger struct {
log *log.Logger
level int
}
func initLog() {
// log.SetFlags(log.LstdFlags | log.Lshortfile)
l := log.New(os.Stderr, "", log.LstdFlags|log.Lshortfile)
Log = &logger{log: l, level: logLevel2Int(ServerCfg.LogLevel)}
}
func logLevel2Int(l string) int {
switch l {
case "debug":
return debug
case "info":
return info
case "error":
return error
case "fatal":
return fatal
default:
return info
}
}
func (l *logger) Debug(v ...interface{}) {
if l.level > debug {
return
}
data := append([]interface{}{"[Debug]"}, v...)
l.log.Println(data...)
}
func (l *logger) Info(v ...interface{}) {
if l.level > info {
return
}
data := append([]interface{}{"[Info]"}, v...)
l.log.Println(data...)
}
func (l *logger) Error(v ...interface{}) {
if l.level > error {
return
}
data := append([]interface{}{"[Error]"}, v...)
l.log.Println(data...)
}
func (l *logger) Fatal(v ...interface{}) {
if l.level > fatal {
return
}
data := append([]interface{}{"[Fatal]"}, v...)
l.log.Fatalln(data...)
}