【Go】gormで実行したsqlをファイルへログ出力する方法メモ
開発時またはリリース後もしばらくはSQLは全てログに残しておきたいのでそのやり方を調べたのでメモ。
http://jinzhu.me/gorm/advanced.html#logger
ドキュメントにそれっぽいのがあった
package main
import (
"log"
"os"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
func main() {
db, err := gorm.Open("mysql", "user:pass@tcp(host:port)/db_name")
if err != nil {
panic(err)
}
defer db.Close()
// 出力先
file, err := os.OpenFile("/path/to/log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
panic(err)
}
log.SetOutput(file)
// ★ログ設定
db.LogMode(true)
db.SetLogger(log.New(file, "", 0))
・・・
}カスタマイズとかはもう少し余裕あったら。
他の人の記事見てると標準のlogパッケージってあんまり使わないのか...?
とりあえず以上です