2009-06-18 4 views
44

Ein Mitglied meines Teams entwickelt eine Rails App unter Windows XP. Wir stellen fest, dass das Rails-Entwicklungsprotokoll nicht blättert, wenn wir die App entweder in NetBeans starten oder eine Konsole öffnen und script/server aufrufen. Es gibt nur die Webrick-Startmeldung. Die App läuft definitiv, aber wenn wir auf verschiedene Seiten im Browser treffen, sehen wir keine Logging-Ausgabe.Wie können wir das Entwicklungsprotokoll von Rails beobachten?

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

Ich habe sichergestellt, dass es in Rails "Entwicklung" Umgebung läuft.

Irgendwelche Ideen, warum Protokollierung unterdrückt werden würde?

Gibt es Config-Parameter für die environment.rb-Datei, die es beeinflussen würde?

+8

schlechte Idee, Windows zu verwenden. – bmalets

Antwort

99

Suchen Sie im Verzeichnis log/ - es sollte eine development.log sein. Ich wette, deine Ausgabe ist da.

Wenn nicht, vergewissern Sie sich, dass das Verzeichnis beschreibbar ist.

Um zu sehen, wie Sie es während Sie laufen: wenn Sie git Bash installiert haben, oder eine andere Shell wie Cygwin, dann können Sie eine Shell öffnen und tail -f log/development.log tun, die das Protokoll scrollen wird, wie es Zeug angehängt wird es.

+0

Hey Sarah! Danke, ja, ich habe ihn mit einem Git Bash-Konsolenfenster eingerichtet, auf dem tail -f läuft. Es verwirrt mich jedoch, dass Webrick nicht alle diese Rails-Logging-Ausgabe an stdout sendet. Ich dachte, das sollte standardmäßig passieren. – Ethan

+0

Ja, das ist seltsam. Wenn ich ruby ​​script/server in einem Verzeichnis (in git bash, unter XP Pro) laufe, sehe ich die Ausgabe. Ich habe es mit und ohne "Ruby" und sogar in cmd.exe versucht. Jedes Mal wartete es, bis es ein Fenster voller Ausgabe hatte, um etwas auszugeben. Welche Version von Rails/Ruby/WEBrick? Ich bin auf 2.3.2/1.8.6/1.3.1. –

+0

2.3.2/1.8.6/nicht sicher über WEBrick - Ich habe im Moment keinen Zugriff auf diesen XP-Rechner. – Ethan

2

Ich verwende immer log/development.log, um die Protokolle zu betrachten. Nur tail -f es mit Cygwin oder etwas.

Möglicherweise verwendet Ihre Windows-Umgebung WEBrick und die OS X-Umgebung verwendet Mongrel oder einen anderen Webserver. Mir ist aufgefallen, dass bei einigen Webservern die Logging-Ausgabe (auch) direkt in die Shell geschrieben wird und bei anderen nur in die Log-Dateien geschrieben wird.

7

Die Rails Configuration Dokumentation schlägt vor, dass Sie möglicherweise log_level auf etwas anderes als :debug in Ihrer Konfiguration festgelegt haben.

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

$ tail -f log/development.log 

Und beobachten Sie die Anfragen von. Sie sagen mir, dass es eine Windows version of tail gibt.

1

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 auf OSX und nicht Mongrel laufen?

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

In meiner Entwicklungsumgebung lief Webrick (nachdem ich herausgefunden hatte, wie - es ist lange her) ich bekam sehr kurze Ausgabe: nur eine Aufzeichnung der "GET" Anfrage. Auf Mongrel umgestellt, habe ich die volle Arbeit: Anfrage, Parameter, SQL, Timings etc.

+0

Danke. Das ist sehr hilfreich. Ja, auf meinem OS X Computer, auf dem Mongrel läuft. Das XP-System meines Kollegen läuft Webrick. Ich werde versuchen, Mongrel dort zu installieren. – Ethan

2

Netbeans scheint, das Dev-Protokoll im Konsolenfenster anzuzeigen, wenn das Entwicklerprotokoll zu groß wird.Zumindest war das meine Erfahrung.

6
less -R log/development.log 

Ich habe gerade angefangen, diese zu verwenden.

3

Versuchen Sie dies, Entwicklung Protokoll zu erhalten:

tail -f log/development.log 

Stellen Sie sicher, dass Sie in der Anwendungspfad sind.

1

Ich benutze Schwanz mit grep

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

funktioniert wunderbar.