2016-03-29 3 views
9

Есть ли способ получить журнал запросов sql от https://github.com/jinzhu/gorm?golang gorm Доступ к базовому запросу mysql

например. в среде разработчиков, было бы полезно иметь возможность записывать на консоль вызываемые запросы mysql.

например. как получить основной журнал запросов SQL для следующих запросов:

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

Я знаю, что я могу назвать:

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

, но я хотел бы назвать только Debug() если в Dev envrionment, а не в производство

ответ

13

Это будет делать трюк:

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

Вы можете передать свой собственный регистратор в gorm, используя метод gorm.SetLogger. Он использует метод печати регистратора для печати журналов, а также SQL-запросов. Уровень журнала для метода печати для любого регистратора (logrus/go inbuild logger) обычно устанавливается в INFO. При прохождении регистратора в gorm, если вы установите уровень журнала на что-либо ниже или равным INFO (DEBUG/INFO), вы можете увидеть sql-запросы и другие журналы с помощью gorm

Также вы можете проанализировать уровень журнала из конфигурации файл, в котором вы можете установить его на основе среды