golang gorm访问底层的mysql查询

Gra*_*avy 21 mysql logging go go-gorm

有没有办法从https://github.com/jinzhu/gorm获取SQL查询日志?

例如,在开发环境中,能够将已调用的mysql查询登录到控制台是有用的.

例如,如何获取以下查询的基础SQL查询日志:

gorm.Find(&todos)
gorm.Preload("User").Find(&todos)
Run Code Online (Sandbox Code Playgroud)

我知道我可以打电话:

gorm.Debug().Find(&todos)
gorm.Debug().Preload("User").Find(&todos)
Run Code Online (Sandbox Code Playgroud)

但是我想只Debug()在开发环境中打电话而不是在制作中

Ron*_*nna 39

这样就可以了:

db, err:= Open(dbType, connectionDSN);
db.LogMode(true)
Run Code Online (Sandbox Code Playgroud)


rus*_*tyx 5

在新版本(GORM v2)中,使用Logger界面:

db, err := gorm.Open(mysql.Open(connectionDSN), &gorm.Config{
    Logger: logger.Default.LogMode(logger.Info),
})
Run Code Online (Sandbox Code Playgroud)

对于旧版本(GORM v1):

db, err:= Open(dbType, connectionDSN);
db.LogMode(true)
Run Code Online (Sandbox Code Playgroud)

注意:这不是特定于 MySQL 的,可以与任何其他数据库驱动程序(例如 Postgres、SQLite 等)一起使用。