Laravel: Cách Ghi Log SQL Query, Bindings và Execution Time
🔍 Trong bài này, mình sẽ hướng dẫn cách ghi log tất cả các câu lệnh SQL được thực thi trong ứng dụng Laravel, bao gồm:
✅ Câu lệnh SQL gốc (raw query)
✅ Các tham số truyền vào (bindings)
✅ Thời gian thực thi từng câu lệnh (execution time)
Bạn sẽ học cách sử dụng DB::listen()
trong AppServiceProvider
để dễ dàng theo dõi và debug query trong quá trình phát triển. Rất hữu ích khi muốn kiểm tra hiệu suất hoặc tìm lỗi trong các truy vấn phức tạp!
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\DB;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
// log sql, bindings, and execution time
DB::listen(function ($query) {
info($query->sql, $query->bindings, $query->time);
});
}
}