golang Gorm accéder à la requête mysql sous-jacente

y a-t-il un moyen d'obtenir le log de requête sql à partir de https://github.com/jinzhu/gorm?

par exemple, dans l'environnement dev, il serait utile de pouvoir enregistrer sur la console les requêtes mysql qui ont été appelées.

par exemple comment obtenir le log de requête sql sous-jacent pour les requêtes suivantes:

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

je sais que je peux appeler:

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

mais je voudrais seulement appeler Debug() si dans l'environnement et non dans la production

15
demandé sur Gravy 2016-03-29 13:14:52

2 réponses

Cela va faire l'affaire:

db, err:= Open(dbType, connectionDSN);
db.LogMode(true)
24
répondu Ronna 2016-03-29 11:39:50

vous pouvez passer votre propre bûcheron à gorm en utilisant gorm.Méthode SetLogger. Il utilise la méthode D'impression de l'enregistreur pour imprimer des journaux ainsi que des requêtes SQL. La méthode log level of Print pour tout logger (Logrus / go's inbuild logger) est généralement définie à INFO. En passant le logger à gorm, si vous définissez le niveau de log à quelque chose en dessous ou égal à INFO (DEBUG / INFO), vous pouvez voir les requêtes sql et les autres logs par gorm

Aussi, vous pouvez analyser le niveau de journal à partir d'un fichier de configuration où vous pouvez basé sur l'environnement

1
répondu Drunk_Debugger 2016-03-29 10:22:04