Python Json Protokollierung

Python Json Protokollierung
Durch die Protokollierung können wir Ereignisse verfolgen, die auftreten, während eine bestimmte Software funktioniert. Wenn die Software fehlschlägt und wir keine Protokollierungsdatensätze haben, gibt es nur sehr wenige Möglichkeiten, die wir die Wurzel des Problems herausfinden würden. Mit den Protokollierungsaufzeichnungen können wir jedoch alle Fehler beibehalten. Wenn ein System die Protokolle analysieren muss, die kein vordefinierter Muster oder Modul folgen, werden die Dinge kompliziert. Python enthält daher JSON, das die Daten auf formatierte Weise unter Verwendung von Objekten organisiert, die sich an ein bestimmtes Muster halten. Das Python-Json-Logger ist das Standard-Python-Protokollierungsmodul, das die Protokollereignisse als JSON-Objekt anzeigt. Das JSON -Logger -Modul verbessert die Maschinenlesbarkeit unserer Protokolle und verhindert, dass die einzigartigen Parsers für Einträge des Syslog -Typs erstellt werden.

So verwenden Sie die Python JSON -Protokollierung?

Die Bibliothek „Python_json_logger“ ist für die Protokolle im JSON -Format erforderlich. Wir können diese Python -Bibliothek mit dem PIP -Befehl installieren. Das Folgende ist der Befehl zur Installation. Bei der Installation zeigt die Eingabeaufforderung auch die Bestätigungsnachricht mit der aktuellen Version der Bibliothek an.

PIP Installieren Sie Python-Json-Logger

Beispiel 1:

Die grundlegende Verwendung des Protokollierungsmoduls ist relativ einfach und kann verwendet werden, um die Ereignisse in Dateien zu protokollieren. Hier bieten wir zunächst die einfache Implementierung von Python -Protokollierung. Wir erstellen das Protokoll und konfigurieren es mit der BasicConfig () -Methode. Diese Methode nimmt den Namen der Datei an, in der die Protokolle erstellt werden, da die angegebene Datei im Write "W" -Modus geöffnet ist. Das Format ist auch für die Protokolle festgelegt. Anschließend deklarieren wir das "Logger" -Objekt, bei dem mit der Methode getLogger ()). Wir geben den Logger mit dem zugewiesenen Namen zurück.

Als nächstes wird die Ebene des Loggers über die Setlevel () -Methode eingestellt, um als Tracking -Schwellenwert für das Debuggen zu dienen, der auf den numerischen Werten basiert, die jeder Ebene zugewiesen werden. Danach stellen wir einige Logger -Klassenmethoden bereit, einschließlich der jeweiligen Nachricht als Parameter. Die Debug () -Methode druckt die Debugging -Nachricht aus. Die info () -Methode generiert eine Nachricht, die mit der Info -Ebene an diesem Protokoll angemeldet ist. Dann zeigt die Critical () -Methode die kritische Ebene des angegebenen Loggers. Die Warnung () und die Fehler () -Methoden zeigen die Warnung für den Logger und jede Ausnahme, die vom Logger aufgeworfen wird.

Protokollierung importieren
Protokollierung.BasicConfig (Dateiname = "Newfile.Protokoll",
format = ' %(asctime) s %(message) s', fileMode = 'w'))
logger = Protokollierung.getLogger ()
Logger.Setlevel (Protokollierung.DEBUGGEN)
Logger.Debugg ("Safe Debug -Erklärung")
Logger.Info ("Es ist eine Information")
Logger.Warnung ("erzeugt Warnung")
Logger.Fehler ("Fehler tritt auf i auf.e wenn divide durch null "))
Logger.kritisch ("Internetverbindung ist langsam")

Das Programm erstellt eine Datei mit dem angegebenen Namen. Wenn wir die Datei öffnen, enthält sie die Informationen gegen jede angegebene Logger -Methode, die im Folgenden aufgeführt ist:

Beispiel 2:

Im oben genannten Programm haben wir die Python -Protokollierungsfunktionalität. Jetzt haben wir ein Programm, in dem die Python JSON-Logger-Bibliothek verwendet wird, um die Protokolle im JSON-Format mit den integrierten Protokollierungsmethoden zu speichern. Hier beginnen wir mit dem Python JSON -Protokollierungscode, indem wir das Protokollierungsmodul und das JSONLogger -Modul für die PythonjsonLogger -Klasse einfügen. Danach deklarieren wir das "Formatter" -Objekt, das mit der Methode jSonformatter () festgelegt wird, um die Ergebnisse im JSON -Format zu erhalten. Anschließend definieren wir das Objekt "JSON_Handler", um die Methode von FileHandler () aufzurufen, mit der die bereitgestellte JSON -Datei angegeben ist.

Als nächstes setzen wir das Format für die JSON -Datei mit der Methode SetFormatter (), wobei das Formatter -Objekt als Eingabe übergeben wird. Anschließend erhalten wir das Objekt des Loggers von der GetLogger () -Methode. Die "json_handler" wird über die addHandler () -Methode hinzugefügt. Am Ende der Logger.Fehler () Methode, die auf Fehler aus der Protokollierung im JSON -Format stößt, wird hier angehoben.

Protokollierung importieren
Aus PythonjsonLogger Import JsonLogger
Formatter = jsonLogger.JsonFormatter ()
JSON_Handler = Protokollierung.FileHandler (Dateiname = 'Newlog.json ')
json_handler.Setformatter (Formatierer)
logger = Protokollierung.getLogger ('my_json')
Logger.addHandler (json_handler)
Logger.error ('ein auftretender Fehler', extra = 'type': 'fatal')

Das folgende JSON -Protokoll ist im „Newlog erstellt.JSON ”Datei, wenn wir sie aus dem JSONLogger -Modul von Python öffnen:

Beispiel 3:

Das grundlegende JSON -Protokollformat ist im vorherigen Beispiel angegeben. Jetzt demonstrieren wir die Ausnahme und das Traceback der Formatierung des Protokolls in JSON mit dem JSONLogger -Modul. Tracebacks geben spezifische Informationen über das Versagen des Programms an, und die Protokollierung ist daher häufig wertvoll. Wir können die Protokollierung verwenden.Ausnahmemethode, das ein integriertes Python-Protokollierungsmodul ist, um die Fehler zu protokollieren und unsere benutzerdefinierten Fehlermeldungen hinzuzufügen.

Darüber hinaus Protokollierung.Ausnahme () Methode hat einen Fehler Standardschweregrad. Zunächst verwenden wir die Importanweisung zum Laden des Protokollierungsmoduls und des JSONLogger -Moduls für JSON -Protokolle. Danach erstellen wir die Instanz des Protokolls mit der Methode getLogger (), um auf den Logger zuzugreifen. Die logarithmische Ausnahme und Traceback werden im „BadcalculationDemo erzeugt.JSON ”Datei.

Als Nächst. Anschließend fügen wir den erstellten "LogHandlerjson" -Handler zur addHandler () -Methode hinzu. Der Versuchsblock wird verwendet, um die Protokolle aus dem folgenden Traceback zu fangen. Hier haben wir eine Versuchserklärung, bei der die Ganzzahl durch den String -Wert geteilt wird, der eine schlechte Berechnungspraxis ist. Die Ausnahme der Ausnahme von Ausnahme fängt diese Protokollausnahme in der Protokollierung auf.Ausnahme (), der die bereitgestellte Nachricht zusammen mit einem Traceback -Bericht im JSON -Format zum BadcalculationDemo druckt.JSON -Datei.

Protokollierung importieren
Aus PythonjsonLogger Import JsonLogger
MyLogger = Protokollierung.getLogger ()
logHandlerjson = Protokollierung.FileHandler ("BadcalculationDemo.json ")
Formatter = jsonLogger.JsonFormatter ()
logHandlerjson.Setformatter (Formatierer)
MyLogger.addHandler (logHandlerjson)
versuchen:
1 / "Milch"
außer:
Protokollierung.Ausnahme ("Ihre Berechnung war schlecht")

Wenn das Skript ausgeführt wird.Inhalt der JSON -Datei. Das Folgende ist das Bild des Badmathdemo.JSON -Datei, in der die Fehlermeldung mit den Traceback -Informationen angezeigt wird:

Beispiel 4:

Die Attribute mit JSON-spezifischen Zeichen könnten dazu führen, dass das JSON-Objekt korrupt wird. Wir können das eindeutige Protokollierungssystem mithilfe der Formatierklasse anpassen und das JSON -Modul ermöglichen, allen Attributen angemessen zu entkommen. Hier bieten wir die benutzerdefinierte JSON -Protokollierung an, die die zusätzlichen Attribute für die Ereignisse der Protokolle bereitstellt. Wir setzen die JSON-, Protokollierung und SYS -Module ein, um die Protokollereignisse unseres Systems zu erstellen. Anschließend stellen wir die Klasse „JsonFormatter“ fest, die die Eingabeprotokollierung und den Formatierer als Parameter nimmt. Danach erstellen wir die Attribute „Selbst“ und „Datensätze“ für diese Klasse.

Anschließend erzeugen wir das "zusätzliche" Objekt, bei dem die Methode von GetAttr () aufgerufen wird, um auf die Protokollierung zuzugreifen.Logrecord -Attribute im JSON -Format. Der JSON -Datensatz wird verwendet, um Zeit, Levelname, Dateiname, Zeilennummer und die angegebene Nachricht für das Protokoll des Systems zu erhalten.

Darüber hinaus extrahieren wir zusätzliche Details zu den Systemprotokollen. Dann benutzen wir den JSON.DUPP () Methode, wobei das Python -Objekt „JSON_RECORD“ zur Konvertierung in das JSON -Objekt übergeben wird. Die JSON -Attribute von Python sind aus der Methode Definition jsonConfig () konfiguriert. Die IF-ELSE-Technik wird verwendet, um den benutzerdefinierten Handler zu erstellen, der die Protokolle in der angegebenen Datei oder in Form des Ausgabestreams zur Konsole angibt. Der Root Logger ist mit dem benutzerdefinierten Handler konfiguriert. Anschließend rufen wir die Methode JsonConfig () und die Protokollierungsmethode auf, die die Ebene der Protokollnachrichten in Form von JSON verleihen.

JSON, Protokollierung, Sys importieren
Klasse JSONFormatter (Protokollierung.Formatierer):
Def Format (Selbst, Aufzeichnung):
extra = getattr (Datensatz, "__dict__", )
JSON_RECORD =
"Zeit": extra.Get ("definiert"),
"Level": Getattr (Aufzeichnung, "Levelname", keine),
"Datei": getattr (Datensatz, "Dateiname", keine),
"Linie": Getattr (Aufzeichnung, "Leineno", keine),
"Msg": getattr (record, "msg", keine),
"usu.Get ("zusätzlich_detail"),

Return JSON.Dumps (JSON_RECORD)
Def JsonConfig (Dateiname = Keine):
Wenn Dateiname:
Handler = Protokollierung.FileHandler (Dateiname)
anders:
Handler = Protokollierung.Streamhandler (sys.stdout)
Handler.setformatter (jsonFormatter ())
Protokollierung.getLogger ().Addhandler (Handler)
JsonConfig ()
Protokollierung.getLogger ().Setlevel (Protokollierung.DEBUGGEN)
Protokollierung.Debugug ("Beispiel von Python")
Protokollierung.WARNUNG ("JSON -Logging", extra = "ad0_detail": 999)

Das Python JSON -Protokollierungsskript erzeugt die Ausgabe der folgenden JSON -Wörterbücher:

Abschluss

Der beste Weg, um die Protokolle zu organisieren und ihre Visualisierung zu zentralisieren, ist die Python JSON -Protokollierung und ein Protokollmanagementprogramm. Um die relevantesten Details zu formatieren und zu erhalten, sollten wir uns auch die Python -Protokollierungsverfahren ansehen. Es ist wichtig, über unsere Python JSON -Protokollbeschränkungen informiert zu werden, da sie uns daran hindern könnten, einen erheblichen Beitrag zu leisten. Das Protokollierungsereignis in Form von JSON -Objekten ist weitaus besser als der einfache Text. Mit einer JSON-basierten Abfragesprache ist es einfach, die Datensätze mit dem JSON-Format zu Datenbanken hinzuzufügen.