Laravel 5.5 – How to log all Eloquent Queries


In this post, I will show you simple method to log each and every Eloquent Query of your application executes. We gonna log queries to the storage/logs/laravel.log file.

To log database queries we gonna add a database calls lister as shown in the below example. Open your app/Providers/AppServiceProvider.php and add following code to boot() method:


namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
use DB;
use Log;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Schema::defaultStringLength(191);

        DB::listen(function($query) {
            Log::info(
                $query->sql,
                $query->bindings,
                $query->time
            );
        });
    }

Example log data

[2017-12-04 18:57:33] local.INFO: select * from `tasks`  
[2017-12-04 18:57:33] local.INFO: select count(*) as aggregate from `tasks`  
[2017-12-04 18:57:33] local.INFO: select * from `tasks` limit 15 offset 0  
[2017-12-04 18:57:33] local.INFO: select * from `tasks`  
[2017-12-04 18:57:33] local.INFO: select count(*) as aggregate from `tasks`  
[2017-12-04 18:57:33] local.INFO: select * from `tasks` limit 15 offset 0  
I hope you like this Post, Please feel free to comment below, your suggestion and problems if you face - we are here to solve your problems.

No comments:

Post a Comment