Laravelで実行したSQLをログに出力

参考にしたサイト

【朗報】Laravel の SQL 実行ログが取得しやすくなる #Laravel – Qiita

app/Providers/AppServiceProvider.php

AppServiceProviderクラスのbootメソッドを次のように編集する。

public function boot(): void
    {
        DB::listen(function (QueryExecuted $query) {
            $sql = $query->connection
                ->getQueryGrammar()
                ->substituteBindingsIntoRawSql(
                    $query->sql,
                    $query->bindings
                );
            Log::info('[' . $query->time . ' ms] ' . $sql);
        });
    }

するとログファイルにSQLとその実行にかかった時間がミリ秒単位で記録される。

動作確認をするなら、Tinkerから次のコマンドを実行すれば良い。

> DB::table('存在するテーブル名')->get();

コメント

タイトルとURLをコピーしました