Heim Backend-Entwicklung Python-Tutorial Python-Protokollierungsmodul in Aktion: Erstellen robuster Protokollierungsanwendungen

Python-Protokollierungsmodul in Aktion: Erstellen robuster Protokollierungsanwendungen

Feb 21, 2024 am 09:12 AM
python 调试 日志记录 可扩展性 可维护性

Python Logging 模块实战:构建健壮的日志记录应用程序

Python Das Protokollierungsmodul ist ein leistungsstarkes Tool für die Anwendungsprotokollierung , mit dem Entwickler Ereignisse, Fehler und Informationen in Anwendungen einfach aufzeichnen können. Durch das Schreiben von Protokollierungsinformationen in eine Datei oder in die Konsole kann das Protokollierungsmodul wertvolle Einblicke in das Anwendungsverhalten liefern und so die Robustheit und Wartbarkeit der Anwendung verbessern.

Protokollierung konfigurieren

Die Konfiguration des Protokollierungsmoduls erfordert die Übergabe der

-Funktion. Diese Funktion akzeptiert die folgenden Parameter: logging.basicConfig()

  • Dateiname: Protokolldateipfad
  • Ebene: Protokollierungsebene (z. B. DEBUG, INFO, WARNUNG)
  • Format: Protokolldatensatz-Informationsformat
  • datefmt: Zeitstempelformat
Der folgende Code konfiguriert beispielsweise das Protokollierungsmodul so, dass alle Protokollierungsinformationen in eine Datei mit dem Namen „app.log“ geschrieben werden:

import logging

logging.basicConfig(filename="app.log", level=logging.DEBUG, fORMat="%(asctime)s %(levelname)s %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
Nach dem Login kopieren

Protokollierungsebene

Das Protokollierungsmodul unterstützt fünf Protokollierungsstufen in aufsteigender Reihenfolge des Schweregrads:

    DEBUG
  • INFO
  • WARNUNG
  • FEHLER
  • KRITISCH
Sie können nur Fehlermeldungen protokollieren, indem Sie

hinzufügen. level 参数设置为相应的级别来配置日志记录信息。例如,logging.DEBUG 级别记录所有日志记录信息,而 logging.ERROR

Protokollierungsmethode

Das Protokollierungsmodul bietet die folgenden Protokollierungsmethoden:

  • debug()
  • info()
  • warning()
  • error()
  • critical()
Diese Methoden akzeptieren die zu protokollierende Nachricht als Parameter. Der folgende Code protokolliert beispielsweise eine Nachricht auf INFO-Ebene:

logging.info("Application started successfully")
Nach dem Login kopieren

Protokollierungsgriff

Zusätzlich zu den

-Funktionen ermöglicht das Logging-Modul auch die Erstellung benutzerdefinierter Logging-Handler. Das Handle kann zur Protokollierung an verschiedenen Zielen wie Konsole, Datei oder Remote-basicConfig()Server verwendet werden.

Um ein Handle zu erstellen, verwenden Sie die Funktion

. Der folgende Code erstellt beispielsweise ein Handle mit dem Namen „my_logger“: logging.getLogger()

my_logger = logging.getLogger("my_logger")
Nach dem Login kopieren

Das Handle kann dann mit der

-Methode zur Handle-Liste hinzugefügt werden. Der folgende Code fügt beispielsweise der Konsole ein Handle hinzu: addHandler()

my_logger.addHandler(logging.StreamHandler())
Nach dem Login kopieren

Protokollierungsfilter

Protokollierungsfilter können verwendet werden, um Protokollierungsinformationen basierend auf bestimmten Bedingungen zu filtern. Filter können auf Nachrichtenebene, Quelle oder anderen benutzerdefinierten Kriterien basieren.

Um einen Filter zu erstellen, verwenden Sie die Klasse logging.Filter. Filter können als Argumente an die Funktion

übergeben werden. Der folgende Code erstellt beispielsweise einen Filter, der nur Nachrichten der INFO-Ebene oder höher protokolliert: logging.Filter 类。过滤器可以作为 addHandler()

class MyFilter(logging.Filter):
def filter(self, record):
return record.levelno >= logging.INFO

my_logger.addHandler(logging.StreamHandler(MyFilter()))
Nach dem Login kopieren

Best Practices

Hier sind einige Best Practices für die Verwendung des Protokollierungsmoduls:

  • Konfigurieren Sie immer die Protokollierung: Stellen Sie sicher, dass Sie das Protokollierungsmodul in Ihrer Anwendung konfigurieren, um unerwartetes Verhalten zu vermeiden.
  • Geeignete Protokollierungsstufe verwenden: Wählen Sie die richtige Protokollierungsstufe basierend auf dem Schweregrad der Nachricht.
  • Verwenden von Protokollierungs-Handles: Erstellen Sie benutzerdefinierte Protokollierungs-Handler, um Protokollierungsinformationen an mehrere Ziele weiterzuleiten.
  • Protokollierungsfilter verwenden: Protokollierungsinformationen filtern, um nur relevante Nachrichten zu protokollieren.
  • Fehler und Ausnahmen protokollieren: Fehler und Ausnahmen immer protokollieren, um das Debuggen und die Fehlerbehebung zu erleichtern.

Fazit

Python Das Logging-Modul ist ein unschätzbares Werkzeug zum Erstellen robuster und wartbarer Anwendungen. Durch die effektive Aufzeichnung des Anwendungsverhaltens hilft das Protokollierungsmodul bei der Früherkennung und Lösung von Problemen und verbessert so die Zuverlässigkeit und Stabilität der Anwendung. Durch Befolgen der in diesem Artikel beschriebenen Best Practices und Techniken können Entwickler die Vorteile des Protokollierungsmoduls maximieren und Anwendungen mit leistungsstarken Protokollierungsfunktionen erstellen.

Das obige ist der detaillierte Inhalt vonPython-Protokollierungsmodul in Aktion: Erstellen robuster Protokollierungsanwendungen. 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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kann der Python -Dolmetscher im Linux -System gelöscht werden? Kann der Python -Dolmetscher im Linux -System gelöscht werden? Apr 02, 2025 am 07:00 AM

In Bezug auf das Problem der Entfernung des Python -Dolmetschers, das mit Linux -Systemen ausgestattet ist, werden viele Linux -Verteilungen den Python -Dolmetscher bei der Installation vorinstallieren, und verwendet den Paketmanager nicht ...

Wie löst ich das Problem der Erkennung von kundenspezifischen Dekoratoren in Python? Wie löst ich das Problem der Erkennung von kundenspezifischen Dekoratoren in Python? Apr 02, 2025 am 06:42 AM

Lösung für die Erkennung von Pylanztypen bei der Verwendung des benutzerdefinierten Dekorators in der Python -Programmierung ist Decorator ein leistungsstarkes Werkzeug, mit dem Zeilen hinzugefügt werden können ...

Wie löste ich Berechtigungsprobleme bei der Verwendung von Python -Verssionsbefehl im Linux Terminal? Wie löste ich Berechtigungsprobleme bei der Verwendung von Python -Verssionsbefehl im Linux Terminal? Apr 02, 2025 am 06:36 AM

Verwenden Sie Python im Linux -Terminal ...

Python 3.6 Laden Sie Giftedatei Fehler ModulenotFoundError: Was soll ich tun, wenn ich die Gurkendatei '__builtin__' lade? Python 3.6 Laden Sie Giftedatei Fehler ModulenotFoundError: Was soll ich tun, wenn ich die Gurkendatei '__builtin__' lade? Apr 02, 2025 am 06:27 AM

Laden Sie die Gurkendatei in Python 3.6 Umgebungsfehler: ModulenotFoundError: Nomodulenamed ...

Teilen Fastapi und AIOHTTP dieselbe globale Ereignisschleife? Teilen Fastapi und AIOHTTP dieselbe globale Ereignisschleife? Apr 02, 2025 am 06:12 AM

Kompatibilitätsprobleme zwischen asynchronen Python -Bibliotheken in Python, asynchrones Programmieren ist zum Prozess der hohen Parallelität und der I/O geworden ...

Was soll ich tun, wenn das Modul '__builtin__' beim Laden der Gurkendatei in Python 3.6 nicht gefunden wird? Was soll ich tun, wenn das Modul '__builtin__' beim Laden der Gurkendatei in Python 3.6 nicht gefunden wird? Apr 02, 2025 am 07:12 AM

Laden Sie Gurkendateien in Python 3.6 Umgebungsbericht Fehler: ModulenotFoundError: Nomodulennamen ...

Wie kann ich sicherstellen, dass der Kinderprozess auch endet, nachdem er den übergeordneten Prozess über Signal in Python getötet hat? Wie kann ich sicherstellen, dass der Kinderprozess auch endet, nachdem er den übergeordneten Prozess über Signal in Python getötet hat? Apr 02, 2025 am 06:39 AM

Das Problem und die Lösung des Kinderprozesses werden weiterhin ausgeführt, wenn Signale zum Töten des übergeordneten Prozesses verwendet werden. In der Python -Programmierung, nachdem er den übergeordneten Prozess durch Signale getötet hatte, ist der Kinderprozess immer noch ...

See all articles