illuminate/databaseでクエリログはいつからデフォルトで取らないようになったのか

Laravel 9.x時点での話 📝

実行済みのクエリログを取得する場合、DB::connection()->enableQueryLog();のようにしてログを有効化し、$queries = DB::getQueryLog();のようにする。

クエリログはデフォルトでは取得しないようになっているので最初にenableQueryLog()をしないといけないのだが、昔はデフォルトで取得するようになっていた(=先述のメソッドを呼ぶ必要がない)らしい?ということを知り、調べてみた。


どうやら変更されたのは2015年頃、4.2から5.0にアップグレード時のようだ。

github.com

もう少し歴史をさかのぼってみると、どうやら元々はクエリログ取得のオンオフ機能はなかったようで、以下issueがきっかけで実装されたっぽい(たぶん)。これは2013年頃で3系。

github.com

github.com

なるほどね...ということでおわり。


余談だけど、大量のクエリログが溜まって「メモリ〜〜」とならないように気をつけよう。