add log level support to simple logger
This commit is contained in:
parent
d1e396ee3f
commit
0c227ead0f
|
@ -37,7 +37,7 @@ type Engine struct {
|
|||
ShowDebug bool
|
||||
ShowWarn bool
|
||||
|
||||
Logger ILogger // io.Writer
|
||||
Logger core.ILogger
|
||||
TZLocation *time.Location
|
||||
}
|
||||
|
||||
|
|
62
logger.go
62
logger.go
|
@ -6,41 +6,51 @@ import (
|
|||
"log"
|
||||
)
|
||||
|
||||
// logger interface, log/syslog conform with this interface
|
||||
type ILogger interface {
|
||||
Debug(m string) (err error)
|
||||
Err(m string) (err error)
|
||||
Info(m string) (err error)
|
||||
Warning(m string) (err error)
|
||||
}
|
||||
type LogLevel int
|
||||
|
||||
const (
|
||||
LOG_ERR LogLevel = iota + 3
|
||||
LOG_WARNING
|
||||
LOG_INFO = iota + 6
|
||||
LOG_DEBUG
|
||||
)
|
||||
|
||||
const (
|
||||
DEFAULT_LOG_PREFIX = "[xorm]"
|
||||
DEFAULT_LOG_FLAG = log.Ldate | log.Lmicroseconds
|
||||
DEFAULT_LOG_LEVEL = LOG_INFO
|
||||
)
|
||||
|
||||
type SimpleLogger struct {
|
||||
DEBUG *log.Logger
|
||||
ERR *log.Logger
|
||||
INFO *log.Logger
|
||||
WARN *log.Logger
|
||||
DEBUG *log.Logger
|
||||
ERR *log.Logger
|
||||
INFO *log.Logger
|
||||
WARN *log.Logger
|
||||
LogLevel LogLevel
|
||||
}
|
||||
|
||||
func NewSimpleLogger(out io.Writer) *SimpleLogger {
|
||||
return &SimpleLogger{
|
||||
DEBUG: log.New(out, "[xorm] [debug] ", log.Ldate|log.Lmicroseconds),
|
||||
ERR: log.New(out, "[xorm] [error] ", log.Ldate|log.Lmicroseconds),
|
||||
INFO: log.New(out, "[xorm] [info] ", log.Ldate|log.Lmicroseconds),
|
||||
WARN: log.New(out, "[xorm] [warn] ", log.Ldate|log.Lmicroseconds),
|
||||
}
|
||||
return NewSimpleLogger2(out, DEFAULT_LOG_PREFIX, DEFAULT_LOG_FLAG)
|
||||
}
|
||||
|
||||
func NewSimpleLogger2(out io.Writer, prefix string, flag int) *SimpleLogger {
|
||||
return NewSimpleLogger3(out, prefix, flag, DEFAULT_LOG_LEVEL)
|
||||
}
|
||||
|
||||
func NewSimpleLogger3(out io.Writer, prefix string, flag int, logLevel LogLevel) *SimpleLogger {
|
||||
return &SimpleLogger{
|
||||
DEBUG: log.New(out, fmt.Sprintf("%s [debug] ", prefix), log.Ldate|log.Lmicroseconds),
|
||||
ERR: log.New(out, fmt.Sprintf("%s [error] ", prefix), log.Ldate|log.Lmicroseconds),
|
||||
INFO: log.New(out, fmt.Sprintf("%s [info] ", prefix), log.Ldate|log.Lmicroseconds),
|
||||
WARN: log.New(out, fmt.Sprintf("%s [warn] ", prefix), log.Ldate|log.Lmicroseconds),
|
||||
DEBUG: log.New(out, fmt.Sprintf("%s [debug] ", prefix), flag),
|
||||
ERR: log.New(out, fmt.Sprintf("%s [error] ", prefix), flag),
|
||||
INFO: log.New(out, fmt.Sprintf("%s [info] ", prefix), flag),
|
||||
WARN: log.New(out, fmt.Sprintf("%s [warn] ", prefix), flag),
|
||||
LogLevel: LOG_INFO,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *SimpleLogger) Debug(m string) (err error) {
|
||||
s.DEBUG.Println(m)
|
||||
if s.LogLevel >= LOG_DEBUG {
|
||||
s.DEBUG.Println(m)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -50,11 +60,15 @@ func (s *SimpleLogger) Err(m string) (err error) {
|
|||
}
|
||||
|
||||
func (s *SimpleLogger) Info(m string) (err error) {
|
||||
s.INFO.Println(m)
|
||||
if s.LogLevel >= LOG_INFO {
|
||||
s.INFO.Println(m)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (s *SimpleLogger) Warning(m string) (err error) {
|
||||
s.WARN.Println(m)
|
||||
if s.LogLevel >= LOG_WARNING {
|
||||
s.WARN.Println(m)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue