LoginSignup
1
2

More than 3 years have passed since last update.

実行された全てのSQLクエリをログに出力するLaravelプラグイン

Posted at

Laravelで新しいプロジェクトを作るたびに毎回似たようなコードを書いている気がしてきたので、プラグインにして公開しました。

Demo

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なので自己責任で使ってください。
本番環境で使う場合は無効化や除外パターンを使って、ログに個人情報や秘密情報が出力されないように注意してください。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2