Frage

Ich habe Django Web-Site arbeitet auf Tornado und nginx.

Ich nahm dieses Tornado Launcher Skript (tornading.py)

Dann Python Ich verwende openid dass Ausgaben einige Informationen sys.stderr.

Als Ergebnis erhalte ich IOError.

Wie kann ich umleiten Logging-Paket mit?

Ich dachte über

f = open("myfile.log", "w")
sys.stderr = f

oder

python tornado.py > /dev/null 2>&1

Aber was ist der beste Weg, es zu lösen?

War es hilfreich?

Lösung

Der beste Weg wäre, wenn die OpenID Bibliothek nicht auf stderr gedruckt wird, sondern verwendet eine Art von API Anmeldung statt (zum Beispiel das Logging-Modul). Ich bin damit einverstanden thkala mit, dass Drittanbieter-Code zu modifizieren auf lange Sicht nicht gut ist, so dass Sie es beheben sollten, und dann das Update auf die openid Autoren liefern.

Für das Ziel, die Open-Source-Gemeinschaft voran, dass der beste Weg, es zu lösen.

Andere Tipps

Mit Umleitungen Schal ist eher ein Workaround als eine Lösung, und es kann nicht immer möglich sein, je nachdem, wie das Skript gestartet wird.

Es hat den deutlichen Vorteil, aber von Ihnen nicht Drittanbieter-Code zu modifizieren. Lokale Änderungen - auch Unmündigen - kann ein großes Problem werden, wenn Sie zum Beispiel entscheiden Update der Code auf die neueste Version von Upstream.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top