Fehler mit Flask protokollieren
Mit dieser Erklärung lernen wir die Fehlerbehandlung kennen, insbesondere das Protokollieren von Fehlern. Am Ende dieses Artikels sollten Sie wissen, wie Sie Fehler in einer Datei protokollieren und wo Sie andere Möglichkeiten zum Protokollieren von Fehlern in Flask finden.
Protokollieren Sie Fehler mit Hilfe des Protokollierungsmoduls in Flask
Typischerweise befindet sich eine Produktions-App nicht im Debug-Modus, daher können wir das logging
-Modul nur verwenden, um zu wissen, dass ein Fehler vorliegt. In diesem Fall wird es an eine Datei gesendet, damit wir es später anzeigen, debuggen und das Problem beheben können.
Dies ist standardmäßig nicht aktiviert; Wir müssen unserer Flask-App eine Protokollierungsfunktion hinzufügen. Aus diesem Grund zeigen wir Ihnen eine wirklich einfache Flask-App, die ausgeführt wird und sich nicht im Debug-Modus befindet.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def Error_Los():
return "The page without error"
if __name__ == "__main__":
app.run()
Das erste, was zu verwenden ist, ist das Modul logging
; wir müssen dies importieren. Es ist ein integriertes Python-Modul, daher müssen wir es nicht installieren, wenn wir Python 3 verwenden.
Wir werden zwei Dinge aus dem logging
-Modul importieren: FileHandler
und WARNING
.
FileHandler
ist eine Möglichkeit, Fehler in einer Datei zu protokollieren. Die WARNUNG
ist die Ebene, bei der wir das Protokoll auslösen möchten; es könnte so etwas wie ein Fehler sein, wo es schwerwiegender ist.
Aber eine Warnung ist nett, wenn wir uns in eine Datei einloggen, weil wir so viel einloggen können, wie wir wollen.
from logging import FileHandler, WARNING
Jetzt müssen wir den FileHandler
instanziieren und den Dateinamen übergeben, in dem der Fehler gespeichert wird.
F_H = FileHandler("errorlogs.txt")
Jetzt müssen wir die Ebene des Dateihandlers mit setLevel()
festlegen; es ist eine Methode der Dateiklasse FileHandler
, also passieren wir die Stufe WARNING
, die wir aus dem Modul logging
importiert haben.
Jetzt müssen wir den Logger für unsere Flask-App verwenden, und dann verwenden wir addHandler
, und darin befindet sich das oben erstellte Datei-Handler-Objekt.
F_H.setLevel(WARNING)
app.logger.addHandler(F_H)
Wenn wir diese App ausführen, wird eine errorlogs.txt
-Datei erstellt. Und eine Sache, die Sie beachten sollten, ist, dass nur Anwendungen protokolliert werden, aber keine HTTP-Fehler, da dies nicht die Art von Fehler ist, nach der Sie suchen. es ist keine Anwendung.
Jetzt werden wir versuchen, 1/0
zurückzugeben, was fehlschlagen wird. Wir werden den Server erneut ausführen und die Seite neu starten.
Wir erhalten einen internen Serverfehler, was bedeutet, dass es sich um einen Fehler handelt, auf den HTTP nicht verweisen kann, aber wenn wir in die Protokolldatei schauen, sehen wir die Fehlerdetails.
def Error_Los():
return 1 / 0
Ausgang:
Wenn Sie mehr über die anderen Handler für die Fehlerprotokollierung erfahren möchten, besuchen Sie die offiziellen Dokumente von hier.
Vollständiger Python-Code:
from flask import Flask
from logging import FileHandler, WARNING
app = Flask(__name__)
F_H = FileHandler("errorlogs.txt")
F_H.setLevel(WARNING)
app.logger.addHandler(F_H)
@app.route("/")
def Error_Los():
return 1 / 0
if __name__ == "__main__":
app.run()
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn