Laravel: Cách Ghi Log SQL Query, Bindings và Execution Time

Hòa Nguyễn Coder

Published in Web Developer · Đã đăng vào tháng 6 7, 2025 2:57 PM

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);
        });
    }
}

 

Nếu bạn thấy đem lại kiến thức bổ ích, hãy Click xem quảng cáo trên trang website của mình nhé! 🚀