若要在專案中,顯示gorm.Debug() 相關的sql 資訊以利偵錯使用,可以搭配logrus
type GormLogger struct{}
// Print handles log events from Gorm for the custom logger.
func (*GormLogger) Print(v ...interface{}) {
switch v[0] {
case "sql":
log.WithFields(
log.Fields{
"module": "gorm",
"type": "sql",
"rows": v[5],
"src_ref": v[1],
"values": v[4],
},
).Debug(v[3])
case "log":
log.WithFields(log.Fields{"module": "gorm", "type": "log"}).Print(v[2])
}
}
var SqlDB *gorm.DB
func InitDB() {
SqlDB, err = gorm.Open("mysql", dbLink)
if err != nil {
log.Fatal(err.Error())
}
err = SqlDB.DB().Ping()
if err != nil {
log.Fatal(err.Error())
}
SqlDB.SetLogger(&GormLogger{})
SqlDB.LogMode(true)
}
留言列表