有沒有辦法從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()在開發環境而不是生產環境中調用
3 回答

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
在新版本(GORM v2)中,使用Logger界面:
import "gorm.io/gorm/logger"
db, err := gorm.Open(mysql.Open(connectionDSN), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
})
對于舊版本(GORM v1):
db, err:= Open(dbType, connectionDSN);
db.LogMode(true)
注意:這不是 MySQL 特有的,可以與任何其他數據庫驅動程序(例如 Postgres、SQLite 等)一起使用。

繁花如伊
TA貢獻2012條經驗 獲得超12個贊
您可以使用 gorm.SetLogger 方法將您自己的記錄器傳遞給 gorm。它使用記錄器的 Print 方法來打印日志以及 SQL 查詢。任何記錄器(logrus/go 的內置記錄器)的 Print 方法的日志級別通常設置為 INFO。在將記錄器傳遞給 gorm 時,如果將日志級別設置為低于或等于 INFO(DEBUG/INFO) 的任何級別,則可以通過 gorm 查看 sql 查詢和其他日志
您也可以從配置文件中解析日志級別,您可以在其中根據環境進行設置
- 3 回答
- 0 關注
- 258 瀏覽
添加回答
舉報
0/150
提交
取消