Seite 1 von 1

Flask: debugger live System

Verfasst: Montag 16. März 2015, 09:42
von taake
Moin,
ich hätte da ne allg. Frage, ist es möglich (und wenn ja wie) den Debug output, glaube das ist werkzeug wenn ich mich nicht irre auch auf nem Livesystem zu bekommen, irgendwie in ne Text datei?
Ist manchmal etwas schwer den genauen Fehler zu finden. Das setup sieht bei mir wie folgt aus.
VirtualEnv -> Flask -> Uwsgi -> Nginx
Bei Fehlern bekomme ich von nginx dann nur ein internal server error (500).
Ich würde aber gerne wie geschrieben den debug output bekommen, wie wenn ich debug=True in der server_start setzte und das ganze direkt mit python aufrufe, nicht auf der website, aber als consolen output oder als redirect in ne textdatei daher die Frage ob das irgendwie möglich ist.

Hoffe es ist in etwa klar was ich genau meine.

Re: Flask: debugger live System

Verfasst: Montag 16. März 2015, 13:52
von Sr4l
Ich gebe hier keine Lösung, weil ich Nginx nicht kenne und mit Flask bestimmt ein Jahr oder mehr nicht gearbeitet habe. Deshalb nur ganz grober Hinweis.

Wenn du bei Apache einen Internal Server Error bekommst (egal ob Python, PHP oder sonst eine Sprache) dann findest du in deinem Error Log vom Websever den Traceback (bei Apache /var/log/apache2/error.log).

Aber eine andere Sache: Wenn du bei deiner App Debugging aktivierst (` app.debug = True `) bekommst du dann nicht den interaktiven Debugger? Ich vermute du hattest vorher `app.run(debug=True)` und deshalb ist dein Debug auf dem produktiv System weg?

Noch ein Hinweis falls es funktioniert: Der interaktive Debugger ist vermutlich ein Sicherheitsrisiko für das System.

Re: Flask: debugger live System

Verfasst: Montag 16. März 2015, 15:50
von taake
@Sr4l:
deine Vermutung ist richtig.

app.debug = True (im view)
war die richtige Lösung.
Allerdings bekomme ich output nicht vom webserver sondern von uwsgi, was mir auch ganz gut passt, der Webserver liefert lediglich ein Bad Gateway (502)
Das macht das debuggen etwas entspannter.
Darf nur nicht vergessen den nachher wieder auszuschalten, sicher ist sicher.

Vielen Dank für die Hilfe.

Re: Flask: debugger live System

Verfasst: Montag 16. März 2015, 17:15
von DasIch
Der Debugger erlaubt es jedem beliebigen Code auf dem Server auszuführen. Auf keinen Fall sollte dieser jemals in einem Produktivsystem genutzt werden. Wenn du mehr Informationen über eine Exception haben willst schau in den Log deines Webservers, wenn dein WSGI Server den 500 ausliefert also in dem Log von diesem statt Apache oder Nginx.

Re: Flask: debugger live System

Verfasst: Montag 16. März 2015, 18:53
von Sr4l
Zumal es auch keinen Grund gibt nicht lokal mit dem Python WSGI Server zu entwickeln. Du brauchst dann lediglich die Datenbank. Das ist viel entspannter als Logs auf dem Server zuwälzen. Wenn du schon auf einem öffentlichem Server entwickelst solltest du wenigstens irgend ein Authentication vom Webserver davor haben.

Re: Flask: debugger live System

Verfasst: Dienstag 17. März 2015, 12:20
von taake
Im Normalfall entwickel ich das ganze auch lokal bevor ich es auf den Server aufspiele, allerdings lief lokal alles und auf dem live system hat eine Sache nicht funktioniert.

Wie sich rausstellte hatte ich lediglich vergessen das ich eine Column in der Datenbank umbeannt hatte und zwar nur lokal und nicht auf dem Livesystem, ohne den Debugoutput würde ich jetzt wohl noch rätseln, hatte das total vergessen das ich das gemacht hatte.