[Laravel] 実行されるSQLをログに残して確認する
データベースの処理が行われた時に、実行時間・クエリ・バインド値をログに保存します。
DB::listen(function ($query) {
\Log::info("[{$query->time}] $query->sql");
\Log::info($query->bindings);
});
/app/Providers/AppServiceProvider.php のファイルに、コードを追加します。
class AppServiceProvider extends ServiceProvider
{
// 略
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
DB::listen(function ($query) {
\Log::info("({$query->time}) $query->sql");
\Log::info($query->bindings);
});
}
}
ログは /storage/logs/laravel.log に残ります。
[2023-02-27 14:44:17] local.INFO: [3.21] select * from `users` where `id` = ? limit 1
[2023-02-27 14:44:17] local.INFO: array (
0 => 1,
)