Maison > Article > développement back-end > Pourquoi DB::getQueryLog() renvoie-t-il un tableau vide dans Laravel 5 ?
Récupération du journal d'exécution des requêtes dans Laravel 5 : résolution du tableau vide DB::getQueryLog()
Lors de la tentative d'affichage du journal des requêtes exécutées , les développeurs peuvent rencontrer une valeur de retour de tableau vide provenant de DB::getQueryLog(). Pour résoudre ce problème, il est essentiel d'activer d'abord le journal des requêtes, qui est désactivé par défaut dans Laravel 5 pour optimiser l'utilisation de la mémoire.
Activation du journal des requêtes
DB::enableQueryLog();
DB::connection('my_connection')->enableQueryLog();
Récupération du journal des requêtes
Une fois activés, les journaux de requêtes peuvent être récupérés en utilisant :
print_r(DB::getQueryLog());
Approche middleware
Pour activer la journalisation des requêtes uniquement pendant le cycle de vie des requêtes HTTP :
class LogQueryMiddleware { public function handle($request, Closure $next) { DB::enableQueryLog(); $response = $next($request); dd(DB::getQueryLog()); // Log queries here return $response; } } // Add the middleware to the app app()->middleware([LogQueryMiddleware::class]);
Journalisation des commandes artisanales
Pour les commandes artisanales, où les chaînes de middleware ne sont pas exécutées :
// In bootstrap/app.php app()->events->listen('artisan.start', function() { DB::enableQueryLog(); });
Gestion de la mémoire
Des requêtes excessives peuvent entraîner des problèmes de mémoire. Il est recommandé d'activer la journalisation des requêtes uniquement à des fins de débogage :
if (app()->environment('local')) { DB::enableQueryLog(); }
En suivant ces étapes, les développeurs peuvent afficher efficacement les journaux de requêtes et obtenir des informations précieuses sur les interactions avec la base de données de leur application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!