Cách ghi nhật ký truy vấn trong Laravel với các ví dụ

Để ghi lại một truy vấn trong Laravel, bạn có thể sử dụng `DB. nghe` phương pháp. Phương pháp này cho phép bạn lắng nghe các sự kiện được kích hoạt khi truy vấn được thực thi. Đây là một ví dụ

DB::listen(function ($query) {
    // $query->sql contains the query
    // $query->bindings contains the query bindings
    // $query->time contains the execution time in miliseconds

// you can use the $query object to log the query however you like Log::info($query->sql, $query->bindings); });

Trong ví dụ này, chúng tôi đang sử dụng lớp `Log` tích hợp của Laravel để ghi lại truy vấn và các ràng buộc của nó. Bạn có thể tùy chỉnh điều này để ghi lại truy vấn theo bất kỳ cách nào bạn muốn

Hãy nhớ rằng phương pháp này sẽ ghi lại tất cả các truy vấn được thực hiện trên cơ sở dữ liệu. Nếu bạn chỉ muốn ghi nhật ký các truy vấn cụ thể, bạn có thể thêm các điều kiện bổ sung vào phần đóng được chuyển đến `DB. nghe`. Ví dụ: bạn chỉ có thể ghi nhật ký các truy vấn mất nhiều thời gian hơn một khoảng thời gian nhất định để thực hiện

DB::listen(function ($query) {
    if ($query->time > 100) {
        // log the query if it takes more than 100ms to execute
        Log::info($query->sql, $query->bindings);
    }
});

Tôi hi vọng cái này giúp được. Hãy cho tôi biết nếu bạn có bất kì câu hỏi nào khác

Trong bài viết sau, chúng tôi sẽ cung cấp cho bạn một số câu trả lời cho câu hỏi Cách ghi nhật ký truy vấn bằng ví dụ trong Laravel . Tôi thực sự hy vọng đây là câu trả lời bạn đang tìm kiếm và nó sẽ giúp bạn tiết kiệm thời gian. thực thi

Cách ghi nhật ký truy vấn trong Laravel với các ví dụ - Cách ghi nhật ký truy vấn trong Laravel
DB::enableQueryLog();
$arr_user = DB::table('users')->select('name', 'email as user_email')->get();
dd(DB::getQueryLog());
DB::enableQueryLog();
$user = DB::table('users')->select('name', 'email as user_email')->get();
dd(DB::getQueryLog());
Method #1
instead of ->get use ->toSql() on query 
$users = User::orderBy('name', 'asc')->toSql();

echo $users;

// Outputs the string:
'select * from `users` order by `name` asc'
Method # 2

DB::enableQueryLog();

// and then you can get query log

dd(DB::getQueryLog());
import DB with this line first, 
use Illuminate\Support\Facades\DB;
php artisan vendor:publish --provider="Prettus\RequestLogger\Providers\LoggerServiceProvider"
check whethe the serviceprovider is added in the providers array in config/app.php
 if no then check whether the service provider class is the correct location and 
   include the serivce provider in the providers array in config.app.php
   
check whethe the serviceprovider is added in the providers array in config/app.php
 if no then check whether the service provider class is the correct location and 
   include the serivce provider in the providers array in config.app.php
   
DB::listen(function ($query) {
    var_dump([
        $query->sql,
        $query->bindings,
        $query->time
    ]);
});

Mong được hỗ trợ bạn kịp thời hơn. Vui lòng tìm các ví dụ minh họa bổ sung xung quanh câu hỏi' Cách ghi nhật ký truy vấn trong Laravel với các ví dụ

Làm cách nào để đăng nhập tất cả các truy vấn SQL trong laravel?

Đăng nhập tệp nhật ký mặc định “laravel. log” nằm ở “storage/logs”. Để ghi lại các truy vấn SQL, chúng ta phải thêm đoạn mã sau vào “AppServiceProvider. php” trong hàm “boot()”, nằm ở “app/Providers” .

Nhật ký truy vấn laravel là gì?

Trong trường hợp này, gói Laravel Query Log giúp cuộc sống của chúng ta dễ dàng hơn. Chỉ cần cài đặt nó và kích hoạt nó từ tệp env của bạn và hoàn tất. Nó sẽ ghi nhật ký tất cả các truy vấn SQL đã thực hiện trong laravel của bạn, số dòng, tổng truy vấn, SQL cuối cùng, các ràng buộc SQL và nhiều thông tin khác . Hãy xem cách chúng ta có thể cài đặt và sử dụng nó trong dự án Laravel của bạn.

Làm cách nào để lấy nhật ký laravel?

Theo mặc định, Laravel được định cấu hình để tạo một tệp nhật ký duy nhất cho ứng dụng của bạn và tệp này được lưu trữ trong app/storage/logs/laravel. nhật ký .

Nhật ký truy vấn là gì?

Nhật ký truy vấn chung là bản ghi chung về những gì mysqld đang làm . Máy chủ ghi thông tin vào nhật ký này khi máy khách kết nối hoặc ngắt kết nối và nó ghi lại từng câu lệnh SQL nhận được từ máy khách.