2016-03-29 17 views
9

Esiste un modo per ottenere il registro di query sql da https://github.com/jinzhu/gorm?golang gorm Accedere alla query mysql sottostante

ad es. in ambiente dev, sarebbe utile poter accedere alla console le query mysql che sono state chiamate.

ad es. come ottenere il sottostante log di query SQL per le query:

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

Sono consapevole che posso chiamare:

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

ma vorrei solo chiamare Debug() se in dev envrionment e non in produzione

risposta

13

Questo farà il trucco:

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

È possibile passare il proprio programma di registrazione a gorm utilizzando il metodo gorm.SetLogger. Utilizza il metodo di stampa del registratore per stampare i registri e le query SQL. Il livello di log del metodo di stampa per qualsiasi registratore (log in in log di logrus/go) è generalmente impostato su INFO. Passando il logger a gorm, se si imposta il livello di registro su qualsiasi valore inferiore o uguale a INFO (DEBUG/INFO) è possibile visualizzare le query sql e altri registri tramite gorm

Inoltre è possibile analizzare il livello di registro da una configurazione file in cui è possibile impostare in base all'ambiente