Logging-Modul es ist ein sehr nützliches Werkzeug in der Programmiersprache Python, mit dem Sie Meldungen und Fehler protokollieren können, während Ihr Programm läuft. Aber was tun, wenn Sie mehrere Module haben und wissen möchten, aus welchem Modul eine bestimmte Nachricht erstellt wurde? In diesem Fall können Sie jeder Nachricht einen Loggernamen hinzufügen, um zu verstehen, aus welchem Modul sie stammt.
So fügen Sie dem Python-Logging-Modul einen Loggernamen hinzu sie müssen einige einfache Schritte ausführen:
- Importieren Sie das Logging-Modul mit dem Befehl import logging .
- Erstellen Sie ein Loggerobjekt mit dem Befehl logger = logging.getLogger('loggername') . Hier kann der Loggername eine beliebige eindeutige ID für Ihr Modul sein.
- Verwenden Sie die Logger-Befehle.debug() , logger.info() , logger.warning() , logger.error() oder logger.critical() zum Protokollieren von Nachrichten mit einem Schweregrad.
Beispiel für die Verwendung eines Loggers mit dem hinzugefügten Namen
import logginglogger = logging.getLogger('имя_логгера')logger.addHandler(logging.StreamHandler())logger.info('Это сообщение из модуля A')logger.info('Это сообщение из модуля B')
имя_логгера: INFO: Это сообщение из модуля Aимя_логгера: INFO: Это сообщение из модуля B
Jetzt wissen Sie, wie Sie dem Logging-Modul von Python einen Loggernamen hinzufügen und halten Sie die Strukturierung in den Log-Aufzeichnungen aufrecht. Dies ist sehr nützlich, wenn Sie mit mehreren Modulen arbeiten und genau wissen möchten, aus welchem Modul jede Nachricht stammt. Verwenden Sie diese Funktionalität, um das Debuggen und die Verwaltung Ihres Programms zu verbessern!
Wie verwende ich das Python-Logging-Modul
Um das Logging-Modul zu verwenden, müssen Sie es in Ihrem Code importieren:
import logging
Das Hauptobjekt, mit dem wir arbeiten werden, wird als Logger bezeichnet. Ein Logger ist eine Instanz der Logger-Klasse aus dem Logging-Modul. Führen Sie die folgenden Schritte aus, um einen Logger zu erstellen:
logger = logging.getLogger(__name__)
Hier steht "__name__" für den Namen des aktuellen Moduls und wird als Loggername verwendet.
Es gibt mehrere Logierungsebenen, die auf die Wichtigkeit von Nachrichten hinweisen. Die am häufigsten verwendeten Logierungsebenen:
- DEBUG - wird für Debug-Informationen verwendet, die detaillierteste Ebene;
- INFO - wird für Informationsmeldungen verwendet, z. B. über den Fortschritt des Programms;
- WARNING - Wird für Warnmeldungen über potenzielle Probleme verwendet;
- ERROR - wird für Fehlermeldungen verwendet;
- CRITICAL - wird für schwerwiegendste Fehler verwendet, die eine sofortige Intervention erfordern.
Um eine Protokollnachricht aufzuzeichnen, können Sie je nach Loggerebene verschiedene Loggermethoden verwenden:
- logger.debug() - zum Schreiben von Debug-Informationen;
- logger.info () - zum Aufzeichnen von Informationsmeldungen;
- logger.warning() - zum Schreiben von Warnmeldungen;
- logger.error() - zum Schreiben von Fehlermeldungen;
- logger.critical() - um die schwerwiegendsten Fehler aufzuzeichnen.
Beim Schreiben von Nachrichten können Sie mithilfe der Formatierung verschiedene Variablen oder Daten hinzufügen. Zum Beispiel:
logger.info('User %s logged in', username)
In diesem Beispiel enthält die Protokollnachricht Informationen über den angemeldeten Benutzer.
Das Logging-Modul bietet außerdem die Möglichkeit, verschiedene Logging-Parameter wie das Nachrichtenformat, die Logging-Ebene, Log-Handler und Filter zu konfigurieren. Auf diese Weise können Sie die Protokollierung genau an die Anforderungen Ihrer Anwendung anpassen.
Die Verwendung des Logging-Moduls von Python vereinfacht den Logging-Prozess und verbessert die Lesbarkeit und das Debuggen von Code in Ihren Anwendungen.
Konfigurieren des Logging-Moduls
Um mit dem Modul zu beginnen logging, sie müssen es importieren:
import logging
1. Erstellen eines Loggers
Verwenden Sie die Logging-Funktion, um einen Logger zu erstellen.getLogger(name) , wobei name - name des zu erstellenden Loggers:
logger = logging.getLogger('my_logger')
2. Festlegen des Loggerpegels
Die Protokollierungsebene bestimmt, welche Nachrichten in das Protokoll geschrieben werden. Modul logging stellt die folgenden Logging-Ebenen bereit (in aufsteigender Reihenfolge):
- DEBUG - Eine detaillierte Debug-Nachricht
- INFO - Informationsmeldung
- WARNING - Warnung
- ERROR - Fehler
- CRITICAL - kritischer Fehler
Sie können die Logger-Ebene mit der Logger-Methode festlegen.setLevel(level) , wobei level - erforderliches Niveau:
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
Sie können die folgenden Parameter angeben:
- %(asctime)s - Datum und Uhrzeit des Protokolldatensatzes
- %(name)s - der Name des Loggers
- %(levelname)s - Logging-Ebene
- %(message)s - Textnachricht
4. Installieren eines Handlers
Der Handler bestimmt, wo das Protokoll geschrieben werden soll. Modul logging stellt mehrere Handlertypen bereit, z. B.:
Verwenden Sie die logger-Methode, um den Handler zu installieren.AddHandler(handler) , wobei handler - prozessor erforderlich:
handler = logging.StreamHandler()logger.addHandler(handler)
5. Binden eines Formats an einen Handler
Um ein zuvor erstelltes Format an einen Handler zu binden, legen Sie es mit der Handler-Methode fest.setFormatter(formatter) :
handler.setFormatter(formatter)