Laravel 5.3 - Comment se connecter à toutes les requêtes sur une page?
Mon équipe et moi-même travaillons sur un projet assez grand. Il y a des requêtes passe partout - dans les contrôleurs, en vue de compositeurs dans les vues (lazy loading) et probablement dans certains autres services. Il devient difficile de garder une trace de tout et la vitesse de chargement des pages est assez lent pour le moment.
Où puis-je la mettre \DB::enableQueryLog() et des \DB::getQueryLog() pour enregistrer TOUTES les requêtes et de les jeter? Fondamentalement, je suis à la recherche d'un endroit dans le code qui se passe avant toutes les requêtes arriver (à mettre enableQueryLog()) et je suis à la recherche d'une place qui se passe après le point de vue de rendu (pour vider getQueryLog()).
Ce serait une bonne façon d'aller à ce sujet?
Merci d'avance.
Double Possible de Comment obtenir de l'exécution de la requête dans Laravel 5 ? DB::getQueryLog retour tableau vide
OriginalL'auteur devk | 2016-12-15
Vous devez vous connecter pour publier un commentaire.
Voici le parfait exemple:
https://laravel.com/docs/5.3/database#listening-for-query-events
Ouvrir app\Providers\AppServiceProvider.php et ajoutez les lignes suivantes à
Boot()
fonction:Vous pouvez simplement vous Connecter::info($query->sql)
Tellement oui. Facile à mettre en œuvre en cas de besoin. À l'aide de
\Log::debug('query', [...])
j'ai été en mesure de se connecter tout dans le laravel journal et de trouver inefficace requêtes exécutées où je pourrais désireux de charge à la place. Je vous remercie.Il ne montre pas où db transaction est démarrée et engagée.
OriginalL'auteur
Vous pouvez ajouter ceci à la Providers/AppServiceProvider.php fichier et de les vérifier dans le laravel fichier journal avec la queue:
Vous pouvez même filtrer des requêtes vous souhaitez vous connecter. Par exemple, ici, j'ai été à l'aide de Laravel Passeport, et ne voulait pas le journal de toutes les requêtes d'authentification oauth.
OriginalL'auteur
Mettre ce code juste au-dessus du code à l'endroit où votre requête est exécutée
OriginalL'auteur
ajouter un middleware qui s'exécute lorsque la demande est faite et enregistre vos requêtes ... voir Provisoire Middlwares
OriginalL'auteur
Êtes-vous à l'aide de MySQL? Vous pouvez juste la queue du journal.
Comment afficher les dernières requêtes exécutées sur MySQL?
Ou utiliser le Laravel Debug Bar?
OriginalL'auteur
Si vous souhaitez imprimer une requête est exécutée sur votre application ne suit pas.
Etape 1: Allez à votre AppServiceProvider.php fichier. //Chemin d'accès au fichier App\Providers\AppServiceProvider.php
Etape 2: Faire démarrer() la méthode et collez code ci-dessous.
Etape 3: Maintenant, vous pouvez vous voir les requêtes dans la lumière.journal ou laravel.le fichier de log. Chemin d'accès au fichier est laravel_app\stockage\logs\laravel.de journal ou de lumière.journal.
Profiter....
OriginalL'auteur
Additioanlly Il y a forfait disponible également:
journal-mon-requêtes
https://packagist.org/packages/technoknol/log-my-queries
Il suffit de l'installer et de l'ajouter à l'entrée de middleware. Il enregistre toutes les requêtes
laravel.log
par défaut du fichier journal.OriginalL'auteur