Wie können Sie Rails-Abfragen protokollieren, bevor sie auftreten?

8

Rails Logger zeigt standardmäßig das SQL an, nachdem es ausgeführt wurde. Manchmal - vor allem wenn eine Abfrage lange dauert - möchte ich den Logger so konfigurieren, dass er SQL ausgibt, bevor er ausgeführt wird. Dann kann ein Folgeprotokoll hinzugefügt werden, sobald die Datenbank geantwortet hat.

Grundidee ist so etwas wie:

%Vor%

Wie kann Rails so konfiguriert werden, dass die SQL-Protokollierung in zwei Schritten unterbrochen wird?

    
mahemoff 08.09.2015, 10:42
quelle

2 Antworten

3

Es gibt keinen Standard, wie Sie den Logger so konfigurieren können, dass er die SQL-Abfrage vor der Ausführung ausgibt.

Sie können jedoch auf diese Weise Abfragen protokollieren, indem Sie die Klasse ActiveRecord :: LogSubscriber erweitern.

> %Vor%

Jetzt erhalten Sie Abfrageprotokoll vor Ausführung. Zum Beispiel, Abfrage

%Vor%

erzeugt

%Vor%     
dimakura 08.09.2015, 11:52
quelle
2

Ich denke, Sie suchen nach erklären Rails-Methode. Also müssen Sie so etwas implementieren:

%Vor%

Natürlich können Sie Timer, Causes, Exception Handling usw. hinzufügen.

    
asiniy 08.09.2015 10:53
quelle