首页 文章

golang gorm访问底层的mysql查询

提问于
浏览
19

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

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

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

gorm.Find(&todos)
gorm.Preload("User").Find(&todos)

我知道我可以打电话:

gorm.Debug().Find(&todos)
gorm.Debug().Preload("User").Find(&todos)

但是我想在开发环境中只调用 Debug() 而不是 生产环境

2 回答

  • 1

    这样就可以了:

    db, err:= Open(dbType, connectionDSN);
    db.LogMode(true)
    
  • 36

    您可以使用gorm.SetLogger方法将自己的 Logger 传递给gorm . 它使用 Logger 的Print方法来打印日志和SQL查询 . 任何 Logger (logrus / go的内置 Logger )的Print方法的日志级别通常设置为INFO . 在将 Logger 传递给gorm时,如果将日志级别设置为低于或等于INFO(DEBUG / INFO),则可以通过gorm查看sql查询和其他日志

    您还可以从配置文件中解析日志级别,您可以根据环境对其进行设置

相关问题