Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

untymage's avatar

listen and get all query logs in app

Where should i putDB::enableQueryLog and DB::enableQueryLog` in my app to fetch all query logs ?

0 likes
4 replies
chiefguru's avatar

Try the boot() method in the AppServiceProvider class

tykus's avatar
tykus
Best Answer
Level 104

You could put a DB::listen in a custom middleware that gets executed on every Request in the application.

// app/Http/Middleware/LogsQueries.php
public function handle(Request $request, Closure $next)
{
    DB::listen(function ($query) {
        \Log::debug($query->sql);
    });
    return $next($request);
}
// app/Http/Kernel.php
protected $middleware = [
        \App\Http\Middleware\LogsQueries::class,
	// ...
untymage's avatar

What happens if a query executed after that middleware ?

tykus's avatar

DB::listen starts a listener; all database queries executed emit a QueryExecuted event; after it has been registered, this listener will be be run for every QueryExecuted event emitted.

Please or to participate in this conversation.