63 lines
993 B
Go
63 lines
993 B
Go
package common
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
type Logger struct {
|
|
*log.Logger
|
|
name string
|
|
}
|
|
|
|
const (
|
|
// verbose
|
|
// DEBUG = 1 << iota
|
|
DEBUG = iota
|
|
// normal operation
|
|
INFO
|
|
// bad
|
|
WARNING
|
|
// really bad (crash)
|
|
ERROR
|
|
)
|
|
|
|
var levels = map[int]string{
|
|
DEBUG: "DEBUG",
|
|
INFO: "INFO",
|
|
WARNING: "WARNING",
|
|
ERROR: "ERROR",
|
|
}
|
|
|
|
func NewLogger(name string) *Logger {
|
|
logger := Logger{
|
|
Logger: log.New(os.Stderr, "", 0),
|
|
name: name,
|
|
}
|
|
return &logger
|
|
}
|
|
|
|
func (logger *Logger) Log(level int, v ...interface{}) {
|
|
levelStr := levels[level]
|
|
// TODO: add date + time
|
|
args := []interface{}{levelStr + ":", logger.name + ":"}
|
|
args = append(args, v...)
|
|
logger.Println(args...)
|
|
}
|
|
|
|
func (logger *Logger) Debug(v ...interface{}) {
|
|
logger.Log(DEBUG, v...)
|
|
}
|
|
|
|
func (logger *Logger) Info(v ...interface{}) {
|
|
logger.Log(INFO, v...)
|
|
}
|
|
|
|
func (logger *Logger) Warning(v ...interface{}) {
|
|
logger.Log(WARNING, v...)
|
|
}
|
|
|
|
func (logger *Logger) Error(v ...interface{}) {
|
|
logger.Log(ERROR, v...)
|
|
}
|