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

3 weeks ago
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
}
}