Heim > Backend-Entwicklung > Python-Tutorial > Praktische Übung mit dem Python-Protokollierungsmodul: Aufbau eines vollständigen Protokollierungssystems

Praktische Übung mit dem Python-Protokollierungsmodul: Aufbau eines vollständigen Protokollierungssystems

王林
Freigeben: 2024-02-21 10:10:04
nach vorne
1218 Leute haben es durchsucht

Python Logging 模块的动手实践:构建一个完整的日志记录系统

Protokollierung, ProtokollierungAufzeichnung, Debugging, Anwendung, Entwicklung

Erstellung und Verwendung von Logger

Der Kern des Logging-Moduls ist die Logger-Klasse. Um zu beginnen, müssen Sie eine Logger-Instanz erstellen:

importurs
logger=ursing.er()
Nach dem Login kopieren

Sie können das .name-Attribut verwenden, um den Logger für Ihr Protokoll anzugeben:

logger=ursing.er("my_application")
Nach dem Login kopieren

Protokollebene: Schweregrad definieren

Sie können den Schweregrad von Protokolleinträgen angeben, indem Sie das Ebenenattribut auf eine der integrierten Ebenen festlegen. Die Stufen reichen von DEBUG (am wenigsten schwerwiegend) bis FATAL (am schwerwiegendsten) wie folgt:

level=ursing.L.DEBUG# 调试级别
level=ursing.L.INFO# 信息级别
level=ursing.L.WARNING# 告警级别
Nach dem Login kopieren

Prozessor: Protokolle formatieren und weitergeben

Ein Prozessor ist eine Komponente, die Protokolle von einem Logger entgegennimmt und sie an ein bestimmtes Ziel sendet. Der eingebaute Prozessor bietet einen Out-of-the-Box-Ansatz:

# 将日志信息发送到标准输出(终端)
handler=ursing.mhandler()
Nach dem Login kopieren

Sie können das Attribut .fORMatter verwenden, um das Format für Ihre Protokolle anzupassen:

handler.er=ursing.er(ursing.F("%(levelname)s:%(message)s"))
Nach dem Login kopieren

Filter: Erfassen Sie nur die Protokolle, die Sie interessieren

Mit Filtern können Sie nur Protokolle erfassen, die bestimmte Kriterien erfüllen. Verwenden Sie die Filterklasse:

filter=ursing.r()
filter.re=rs.ur("ERROR")# 仅匹配“ERROR”级别的日志
Nach dem Login kopieren

Fügen Sie alles zusammen

Schließen Sie Prozessoren und Filter an Logger an, um eine vollständige Protokollierungspipeline aufzubauen:

logger.addhandler(handler, filter)
Nach dem Login kopieren

Praktisches Beispiel: ein kompletter Logger

Stellen Sie sich eine Anwendung vor, die in der Datei „example.py“ ausgeführt wird. Wie unten gezeigt, verwenden wir das Logging-Modul, um einen umfassenden Logger zu erstellen:

importurs
logger=ursing.er("my_example_app")

# 根级别为“INFO”
logger.level=ursing.L.INFO

# 创建一个到文件“app.log”的处理器
file_handler=ursing.FH("app.log",mode="a")
file_handler.er=ursing.er(ursing.F("%(asctime)s -%(levelname)s:%(message)s"))

# 创建一个到终端的处理器
console_handler=ursing.mhandler()
console_handler.er=ursing.er(ursing.F("%(message)s"))

# 将处理器附加到日志
logger.addhandler(file_handler)
logger.addhandler(console_handler)
Nach dem Login kopieren

In einer Anwendung können Sie die Methode .log() verwenden, um Informationen auf einer bestimmten Ebene in das Protokoll zu schreiben:

logger.info("开始应用程序")
logger.error("应用程序遇到一个严重问题")
Nach dem Login kopieren

Fazit

Das Protokollierungsmodul bietet Ihnen eine umfassende und flexible Kontrolle über die Anwendungsprotokollierung. Kombinieren Sie dies mit den entsprechenden Ebenen, Prozessoren und Filtern, und Sie können eine robuste und aufschlussreiche Protokollierungsgrundlage aufbauen, die Ihnen hilft, Probleme zu isolieren, das Anwendungsverhalten zu verfolgen und die Leistung zu optimieren.

Das obige ist der detaillierte Inhalt vonPraktische Übung mit dem Python-Protokollierungsmodul: Aufbau eines vollständigen Protokollierungssystems. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage