webentwicklung-frage-antwort-db.com.de

Wie können wir das Rails-Entwicklungsprotokoll beobachten?

Ein Mitglied meines Teams entwickelt eine Rails-App unter Windows XP. Wir stellen fest, dass das Rails-Entwicklungsprotokoll beim Ausführen der App entweder durch Starten in NetBeans oder durch Öffnen einer Konsole und Aufruf von script/server nicht durchläuft. Es gibt nur die Webrick-Startnachricht. Die App läuft definitiv, aber wenn wir verschiedene Seiten im Browser aufrufen, sehen wir keine Protokollierungsausgabe.

Wenn ich mir die identische App auf meinem OS X-System anschaue, funktioniert die Protokollierung der Ausgabe wie erwartet.

Ich habe sichergestellt, dass es in der "Entwicklungsumgebung" von Rails läuft.

Irgendwelche Ideen, warum die Protokollierung unterdrückt wird?

Gibt es Konfigurationsparameter für die Datei environment.rb, die sich darauf auswirken würden?

50
Ethan

Schauen Sie im log/-Verzeichnis nach - dort sollte ein development.log sein. Ich wette, deine Ausgabe ist da.

Ist dies nicht der Fall, stellen Sie sicher, dass das Verzeichnis schreibgeschützt ist. 

Wie Sie es während des Laufens sehen können: Wenn Sie git bash oder eine andere Shell wie cygwin installiert haben, können Sie eine Shell öffnen und tail -f log/development.log ausführen, um das Protokoll zu scrollen, sobald es mit dem angehängten Material gefüllt wird.

109
Sarah Mei

Die Rails Configuration -Dokumentation legt nahe, dass Sie log_level in Ihrer Konfiguration auf etwas anderes als :debug eingestellt haben.

Es gibt auch einen alternativen Ort zum Anzeigen der Anforderungen: die Datei log/development.log in Ihrer Rails-App. Wenn dort nichts geschrieben ist, muss Ihr Problem in der Konfiguration liegen. Auf einem * nix-System würde ich Folgendes ausführen:

$ tail -f log/development.log

Und schauen Sie sich die Anfragen an. Sie sagen mir, dass es eine Windows-Version von tail gibt.

8
less -R log/development.log

Ich habe gerade angefangen, das zu benutzen.

6
Tu H.

Versuchen Sie dies, um ein Entwicklungsprotokoll abzurufen:

tail -f log/development.log

Stellen Sie sicher, dass Sie sich im Anwendungspfad befinden.

3
Rahul2692

Netbeans scheint das dev-Protokoll nicht mehr im Konsolenfenster anzuzeigen, wenn das dev-Protokoll zu groß wird. Zumindest war das meine Erfahrung.

2
srboisvert

Ich verwende immer log/development.log, um die Protokolle anzusehen. Einfach tail -f es mit cygwin oder so etwas.

Möglicherweise verwendet Ihre Windows-Umgebung WEBrick und die OS X-Umgebung Mongrel oder einen anderen Webserver. Ich habe festgestellt, dass bei einigen Webservern die Protokollierungsausgabe (auch) direkt in die Shell und bei anderen nur in die Protokolldateien geschrieben wird.

2
Thiago Arrais

Ich benutze Schwanz mit Grep

tail -f log/development.log | grep Started -A 1

Funktioniert wunderbar.

1
Hristo

Sie können die Laufzeitprotokolle mit dem folgenden Befehl anzeigen:

tailf log/development.log

Wenn Sie nur die erste oder letzte Anzahl von Zeilen aus den Protokollen wünschen, können Sie diese einfach mit dem folgenden Befehl erhalten (erste/letzte 100 Zeilen aus Protokollen):

Zum Beispiel:

Die ersten 100 Zeilen:

head -n 100 log/development.log 

Letzte 100 Zeilen:

tail -n 100 log/development.log

Vielen Dank!

1
Sumit Munot

Ohne in die Quelle für Webrick zu graben, vermute ich, dass die Menge der angezeigten Informationen standardmäßig nicht groß ist. Sind Sie sicher, dass Sie Webrick unter OSX und nicht Mongrel ausführen?

Gibt es einen besonderen Grund, Webrick überhaupt weiter zu verwenden? Vor dem Aufkommen von Phusion Passenger war Mongrel der De-facto Front-End-Server der Wahl, und es funktioniert einwandfrei unter Windows. Wenn Sie es installieren (gem install mongrel), wird es von Rails standardmäßig verwendet.

In meiner Entwicklungsumgebung wurde Webrick ausgeführt (nachdem ich herausgefunden hatte, wie - es war lange her). Ich erhielt eine sehr kurze Ausgabe: Nur eine Aufzeichnung der "GET" -Anforderung. Ich habe zu Mongrel gewechselt und bekam die kompletten Arbeiten: Anfrage, Parameter, SQL, Timings usw.

1
Mike Woodhouse

Sie können diesen Befehl ausprobieren

$ tail -f development.log


$ tail -f log/development.log
0
Foram Thakral