Laravelで新しいプロジェクトを作るたびに毎回似たようなコードを書いている気がしてきたので、プラグインにして公開しました。
PHP 7.2〜7.4、Laravel 5.6以上、6.x、7.xで動作するはずです。
PHP 7.2〜7.4とLaravel 7.xでユニットテストしています。
PHP 7.3.16とLaravel 7.3.0で実際に動作確認しました。
ログには次の項目が出力されます。
- バインド後のSQL
- バインド変数
- 実行時間(ミリ秒)
- コネクション名
インストール方法はREADMEに書いていますが、Composerでインストールして、(パッケージディスカバリーを使っていない場合は)サービスプロバイダとファサードをconfig/app.php
に追加するだけです。
実行時にログを無効化することもできます。
QueryLogTracker::beginDisable();
// ログを無効化したいSQL
QueryLogTracker::endDisable();
QueryLogTracker::disable(function () {
// ログを無効化したいSQL
});
設定ファイルで次の項目を設定できます。
- ログレベル
- ログから除外するSQLのパターン(正規表現)
- ログスタック
- ログチャンネル
テストはしていますがOSSなので自己責任で使ってください。
本番環境で使う場合は無効化や除外パターンを使って、ログに個人情報や秘密情報が出力されないように注意してください。