Laravel 5.3 - Wie protokolliert man alle Abfragen auf einer Seite?

9

Mein Team und ich arbeiten an einem ziemlich großen Projekt. Es gibt überall Anfragen - in Controllern, View-Composern in Views (Lazy Loading) und wahrscheinlich auch in einigen anderen Diensten. Es wird schwierig, den Überblick zu behalten, und die Seitenladegeschwindigkeit ist im Moment ziemlich langsam.

Wo würde ich \ DB :: enableQueryLog () und \ DB :: getQueryLog () setzen, um alle Abfragen zu protokollieren und sie zu löschen? Im Grunde bin ich auf der Suche nach einem Platz im Code, der passiert, bevor irgendwelche der Abfragen passieren (um enableQueryLog () zu setzen) und ich suche nach einem Ort, der nach dem Rendern der Ansichten passiert (um getQueryLog () zu dumpen).

Was wäre ein guter Weg, dies zu tun?

Vielen Dank im Voraus.

    
devk 15.12.2016, 11:35
quelle

4 Antworten

15

Hier kommt das perfekte Beispiel:

Ссылка

Öffnen Sie app \ Providers \ AppServiceProvider.php und fügen Sie Folgendes zu Boot() function:

hinzu %Vor%     
Hudson Pereira 15.12.2016, 11:47
quelle
5

Sie können dies der Datei "Providers / AppServiceProvider.php" hinzufügen und sie in der Laravel-Protokolldatei mit Tail überprüfen:

%Vor%

Sie können sogar mit Abfragen filtern, die Sie protokollieren möchten. Zum Beispiel habe ich hier Laravel Passport verwendet und wollte nicht alle OAUTH-Abfragen protokollieren.

%Vor%     
buzkall 31.03.2017 09:48
quelle
0

Fügen Sie eine Middleware hinzu, die ausgeführt wird, nachdem die Anfrage abgeschlossen wurde, und protokolliert Ihre Abfragen ... siehe Endgültige Middleware

    
Sherif 15.12.2016 11:41
quelle
0

Verwenden Sie MySQL? Sie können das Protokoll einfach abschneiden.

Wie werden die letzten Abfragen angezeigt, die auf MySQL ausgeführt wurden?

Oder benutze die Laravel Debug Bar?

    
Mick 15.12.2016 14:19
quelle

Tags und Links