You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
1.8 KiB
Go
103 lines
1.8 KiB
Go
package logger
|
|
|
|
import (
|
|
"github.com/sirupsen/logrus"
|
|
"xorm.io/xorm/log"
|
|
)
|
|
|
|
type XormLogger struct {
|
|
log Logger
|
|
showSQL bool
|
|
}
|
|
|
|
func NewXormLogger(log Logger) log.Logger {
|
|
return &XormLogger{
|
|
log: log,
|
|
showSQL: false,
|
|
}
|
|
}
|
|
|
|
var _ log.Logger = (*XormLogger)(nil)
|
|
|
|
func (x *XormLogger) Debug(v ...interface{}) {
|
|
x.log.Debug(v...)
|
|
}
|
|
|
|
func (x *XormLogger) Debugf(format string, v ...interface{}) {
|
|
x.log.Debugf(format, v...)
|
|
}
|
|
|
|
func (x *XormLogger) Error(v ...interface{}) {
|
|
x.log.Error(v...)
|
|
}
|
|
|
|
func (x *XormLogger) Errorf(format string, v ...interface{}) {
|
|
x.log.Errorf(format, v...)
|
|
}
|
|
|
|
func (x *XormLogger) Info(v ...interface{}) {
|
|
x.log.Info(v...)
|
|
}
|
|
|
|
func (x *XormLogger) Infof(format string, v ...interface{}) {
|
|
x.log.Infof(format, v...)
|
|
}
|
|
|
|
func (x *XormLogger) Warn(v ...interface{}) {
|
|
x.log.Warn(v...)
|
|
}
|
|
|
|
func (x *XormLogger) Warnf(format string, v ...interface{}) {
|
|
x.log.Warnf(format, v...)
|
|
}
|
|
|
|
func (x *XormLogger) Level() log.LogLevel {
|
|
return toXormLogLevel(x.log.GetLevel())
|
|
}
|
|
|
|
func (x *XormLogger) SetLevel(l log.LogLevel) {
|
|
x.log.SetOutputLevel(fromXormLogLevel(l))
|
|
}
|
|
|
|
func (x *XormLogger) ShowSQL(show ...bool) {
|
|
if len(show) == 0 {
|
|
x.showSQL = true
|
|
return
|
|
}
|
|
x.showSQL = show[0]
|
|
}
|
|
|
|
func (x *XormLogger) IsShowSQL() bool {
|
|
return x.showSQL
|
|
}
|
|
|
|
func toXormLogLevel(level logrus.Level) log.LogLevel {
|
|
switch level {
|
|
case logrus.InfoLevel:
|
|
return log.LOG_INFO
|
|
case logrus.DebugLevel:
|
|
return log.LOG_DEBUG
|
|
case logrus.ErrorLevel:
|
|
return log.LOG_ERR
|
|
case logrus.WarnLevel:
|
|
return log.LOG_WARNING
|
|
default:
|
|
return log.LOG_UNKNOWN
|
|
}
|
|
}
|
|
|
|
func fromXormLogLevel(level log.LogLevel) LogLevel {
|
|
switch level {
|
|
case log.LOG_INFO:
|
|
return InfoLevel
|
|
case log.LOG_DEBUG:
|
|
return DebugLevel
|
|
case log.LOG_ERR:
|
|
return ErrorLevel
|
|
case log.LOG_WARNING:
|
|
return WarnLevel
|
|
default:
|
|
return UndefinedLevel
|
|
}
|
|
}
|