A wrapper between logrus Logger and gorm Logger.
logrus日志到gorm日志的兼容层。
package main
import (
"github.com/gedoy9793/gorm-logrus"
"github.com/sirupsen/logrus"
"gorm.io/gorm"
"gorm.io/driver/mysql"
)
func main() {
logrusLogger := logrus.New()
// you can config this logger
db, _ := gorm.Open(mysql.Open("data.db"), &gorm.Config{
Logger: gorm_logrus.NewLogger(logrusLogger),
})
}
You can also use logrus.Entry to create a wrapper:
也可以使用logrus.Entry创建一个兼容层:
package main
import (
"github.com/gedoy9793/gorm-logrus"
"github.com/sirupsen/logrus"
"gorm.io/gorm"
"gorm.io/driver/mysql"
)
func main() {
logrusEntry := logrus.New().WithField("key", "value")
// you can config this entry
db, _ := gorm.Open(mysql.Open("data.db"), &gorm.Config{
Logger: gorm_logrus.NewEntry(logrusEntry),
})
}
Note: Gorm uses the LogMode
function to set the logging level. In this wrapper, it's implemented as Entry.Logger.SetLevel
. So I don't recommend using this Logger in more than one place, instead you should create a separate Logger for gorm.
注意: Gorm使用LogMode
函数设置日志等级。在兼容层中,这个函数被实现为Entry.Logger.SetLevel
。所以我不建议在多个地方使用这个Logger,而应该为gorm创建单独的Logger。