My team and I are working on a rather big project. There\'s queries going on everywhere - in controllers, in view composers in views (lazy loading) and probably in some othe
add a middleware that executes after the request is done and logs your queries ... see Terminable Middlwares
If you want to print a query which is executed on your app do following steps.
Step1: Go to your AppServiceProvider.php file. // File path App\Providers\AppServiceProvider.php
Step2: Make boot() method and paste below code.
public function boot() {
// Log queries
if (true) {
\DB::listen(function ($query) {
\Log::info(
$query->sql, $query->bindings, $query->time
);
});
}
}
Step3: Now you can see you queries in lumen.log or laravel.log file. File path is laravel_app\storage\logs\laravel.log or lumen.log.
Enjoy....
You can add this to the Providers/AppServiceProvider.php file and check them in the laravel log file with tail:
tail -f storage/logs/laravel.log
You can even filter with queries you want to log. For example, here I was using Laravel Passport, and didn't want to log all the oauth queries.
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Log;
public function register() {
if (App::environment('local') && env('APP_URL') == 'http://localhost') {
Event::listen('Illuminate\Database\Events\QueryExecuted', function ($query) {
// filter oauth ones
if (!str_contains($query->sql, 'oauth')) {
Log::debug($query->sql . ' - ' . serialize($query->bindings));
}
});
}
}
Are you using MySQL? You can just tail the log.
How to show the last queries executed on MySQL?
Or use the Laravel Debug Bar?
Here comes the perfect example:
https://laravel.com/docs/5.3/database#listening-for-query-events
Open app\Providers\AppServiceProvider.php and add the following to Boot()
function:
DB::listen(function ($query) {
var_dump([
$query->sql,
$query->bindings,
$query->time
]);
});
Additioanlly There's package available also:
https://packagist.org/packages/technoknol/log-my-queries
Just install and add it's entry to middleware. It will log all the queries in laravel.log
default log file.