Top 10 Python -Protokollierungsbeispiele

Top 10 Python -Protokollierungsbeispiele
Protokollinformationen sind sehr wichtig für die Debugge und Entwicklung einer Anwendung. Wenn die Anwendung ausgeführt wird, kann jedes Ereignis mithilfe von Protokollierungsfunktionen verfolgt werden. Der Programmierer kann durch Verwendung von Protokolldaten ein klares Verständnis des Programmflusses erhalten. Wenn ein Programm abstürzt, kann die Ursache des Absturzes leicht durch Protokolldatensätze erkannt werden, die Entwicklungszeiten sparen. Die Leistung der Anwendung kann auch durch Protokollierung gemessen werden.

Python hat ein integriertes Modul mit dem Namen Protokollierung Um die Protokollinformationen für jede Python -Anwendung zu erhalten. Es ist ein sehr nützliches Modul für den Anfänger oder den erfahrenen Python -Programmierer, um die Statusnachricht in den Ausgabestream oder in eine Datei zu drucken. Die meisten Python-Bibliotheken von Drittanbietern verwenden dieses Modul, um Protokollinformationen für die Python-Anwendung zu generieren. Wie Sie dieses Modul verwenden können, wird in diesem Artikel unter Verwendung von 25 einfachen Python -Protokollierungsbeispielen angezeigt.

Liste der Protokollierungsbeispiele:

  1. Verwenden von getLogger ()
  2. Mit BasicConfig ()
  3. Mit setlevel ()
  4. Verwenden von GetEffectivelevel ()
  5. Verwenden von iSenabledFor ()
  6. Verwenden Sie Debug ()
  7. Verwenden von info ()
  8. Verwenden von Warnungen ()
  9. Verwenden von Fehler ()
  10. Mit kritisch () verwenden
  11. Anmelden bei einer Datei
  12. Verwenden von Variablen bei der Protokollierung
  13. Verwenden von Ausnahme ()
  14. Handler erstellen
  15. Unter Verwendung von Formatter ()
  16. Verwenden von Logrecord GetMessage
  17. Verwenden von Logrecord -Attributen - Args
  18. Verwenden von Logrecord -Attributen - asctime
  19. Verwenden von Logrecord -Attributen - Dateiname
  20. Verwenden von Logrecord -Attributen - Funktionsname
  21. Verwenden von Logrecord -Attributen - Leineno
  22. Verwenden von Logrecord -Attributen - Modul
  23. Verwenden von Logrecord -Attributen - MSG
  24. Verwenden von Logrecord -Attributen - Pfadname
  25. Verwenden von Protokollierung.deaktivieren

Verwenden von getLogger ()

getLogger () Funktion wird verwendet, um ein Logger -Objekt zu erstellen. Diese Funktion kann mit Logger -Namen oder ohne Logger -Namen aufgerufen werden. Der Standard -Protokoll -Name ist Wurzel. Im folgenden Beispiel wird das Logger -Objekt mit einem Logger -Namen und ohne Logger -Namen mit Verwendung erstellt getLogger (). Hier werden drei Warnmeldungen gedruckt. Das Stamm wird als Logger -Name für die erste und zweite Warnmeldung gedruckt. Die dritte Warnmeldung wird mit dem Logger -Namen gedruckt, der in GetLogger () -Funktion zugewiesen ist.

Beispiel 1.py

#modul
Protokollierung importieren
# Erste Warnmeldungen drucken
Protokollierung.Warnung ("Dies ist erste Warnmeldung")
#Ein Objekt erstellen
logger = Protokollierung.getLogger ()
# Zweite Warnmeldungen drucken
Logger.Warnung ('Dies ist zweite Warnmeldung')
#Ein Objekt erstellen
logger = Protokollierung.getLogger ('mylog')
# Dritte Warnmeldungen drucken
Logger.Warnung ("Dies ist die dritte Warnmeldung")

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel1.py

Ausgang:

Der Standardprotokollname lautet 'root' und wenn das Logger -Objekt ohne einen Namen erstellt wird, ist der benannte Protokoll auch "root". Die folgende Ausgabe wird also nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Mit BasicConfig ()

BasicConfig () Funktion wird verwendet, um die Protokollierungsoptionen des Stammloggers zu konfigurieren. Durch diese Funktion können verschiedene Arten der grundlegenden Konfiguration erfolgen. Format, Ebene, Dateiname, usw. sind die am häufigsten verwendeten Argumente dieser Funktion. Format wird verwendet, um die Ausgabe der Protokollnachricht zu formatieren. eben wird verwendet, um die Protokollierungsstufe einzustellen. Dateinamen wird verwendet, um die Ausgabe der Protokollnachricht an eine Datei und nicht an die Konsole zu senden. Die Verwendung von Format Und eben Argumente werden im folgenden Beispiel gezeigt.

Beispiel2.py

#modulmodul
Protokollierung importieren
#Create und konfigurieren Sie den Logger
Protokollierung.BasicConfig (format = '%(Nachricht) S', Level = Protokollierung.DEBUGGEN)
# Testmeldungen vor dem Einstellen der Ebene drucken
Protokollierung.Debugug ("Drucken Sie die Debugging -Nachricht")

Führen Sie das Skript aus dem Terminal aus.

$ Python Beispiel2.py

Ausgang:

Hier das Nachricht ist in der festgelegt Format Argument und die Protokollierung eben ist eingestellt auf DEBUGGEN. Die folgende Debug -Nachricht wird nach dem Ausführen des Skripts als Ausgabe gedruckt.

Zur Spitze gehen

Mit setlevel ()

setlevel () Funktion wird verwendet, um die Protokollierungsstufe einzustellen. Sechs Ebenen können durch diese Funktion festgelegt werden. Diese sind Debug (10), Info (20), Warnung (30), Fehler (40), kritisch (50) Und Notiz (0). Die Standardstufe wird so festgestellt. Der Root Logger verarbeitet standardmäßig Nachrichten für Warnung, Fehler und kritische Ebene. Wie Sie die aktuelle Logger -Ebene durch Verwendung ändern können setlevel () Die Funktion wird im folgenden Beispiel gezeigt. Hier werden Debug- und Warnmeldungen vor und nach dem Einstellen der Protokollebene im Skript gedruckt.

Beispiel3.py

#modul
Protokollierung importieren
#Create und konfigurieren Logger
Protokollierung.BasicConfig (format = '%(Nachricht) S')
#Ein Objekt erstellen
logger = Protokollierung.getLogger ()
# Testmeldungen vor dem Einstellen der Ebene drucken
Logger.Debugg ("Test Debug Message")
Logger.Warnung ("Test Warnmeldung")
# Legen Sie die Logger -Level auf Debugg ein
Logger.Setlevel (Protokollierung.DEBUGGEN)
# Testmeldungen nach dem Einstellen der Ebene drucken
Logger.Debugg ("Test Debug Meldung 2")
Logger.Warnung ("Test Warnmeldung 2")

Führen Sie das Skript aus dem Terminal aus.

$ Python Beispiel3.py

Ausgang:

Die erste Debug -Nachricht des Skripts wird nicht für die Standardprotokoll -Ebene gedruckt, und die zweite Debug -Nachricht wird für die Einstellung der Protokollebene auf Debuggen gedruckt. Die folgende Ausgabe wird angezeigt

Nach dem Ausführen des Skripts.

Zur Spitze gehen

Verwenden von GetEffectivelevel ()

GetEffectivelevel () Funktion wird verwendet, um den aktuellen Wertprotokollpegelwert abzurufen. Wenn die aktuelle Protokollebene auf Notset gesetzt ist, sucht das Logger -Objekt die Protokollebene des Root -Loggers. Wenn nichts für Root -Logger gefunden wird, wird der Wert der Protokollebene von Notset zurückgegeben. Wie Sie verwenden können GetEffectivelevel () Um die aktuelle Protokollebene zu lesen, wird im folgenden Beispiel angezeigt. Hier wird diese Funktion vor und nach dem Einstellen der Protokollebene aufgerufen.

Beispiel4.py

#modulmodul
Protokollierung importieren
#Create Logger -Objekt
logger = Protokollierung.getLogger ()
#Printieren Sie den aktuellen Code der Protokollebene
print ("aktueller Protokollebene Code: % d" % (Logger.GetEffectivelevel ())))
# Legen Sie die Protokollebene auf Warnung ein
Protokollierung.BasicConfig (Level = Protokollierung.DEBUGGEN)
#Printieren Sie den aktuellen Code der Protokollebene
print ("aktueller Protokollebene Code: % d" % (Logger.GetEffectivelevel ())))

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel4.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt. Die Ausgabe zeigt, dass die Standardprotokollebene warnt (30) und die Protokollebene Debug (10) nach Einstellung der Ebene.

Zur Spitze gehen

Verwenden von iSenabledFor ()

isenabled for () Die Funktion wird verwendet, um zu überprüfen, ob eine Protokollebene derzeit aktiviert oder deaktiviert ist. Das folgende Beispiel wird zuerst überprüft, ob die Info -Ebene aktiviert ist oder nicht. Info- und Debug -Levels sind standardmäßig nicht aktiviert. Also die Ausgabe von isenable for () Funktion wird falsch sein. Als nächstes wird die Protokollebene auf Infos eingestellt und isenabled for () wird für die letzte Erklärung wahr zurückkehren.

Beispiel5.py

#modulmodul
Protokollierung importieren
#Create Logger -Objekt
logger = Protokollierung.getLogger ("mylog")
#Überprüfen Sie, ob die Info -Ebene aktiviert ist oder nicht
print ("Info Level ist aktiviert: % s" % (Logger.isenabled for (Protokollierung.DIE INFO)))
# Legen Sie die Protokollebene auf Infos ein
Protokollierung.BasicConfig (Level = Protokollierung.DIE INFO)
#Überprüfen Sie, ob die Info -Ebene aktiviert ist oder nicht
print ("Info Level ist aktiviert: % s" % (Logger.isenabled for (Protokollierung.DIE INFO)))

Führen Sie das Skript aus dem Terminal aus.

$ Python Beispiel5.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden Sie Debug ()

debuggen() Funktion wird verwendet, um Detailinformationen nach der Diagnose des Skripts zu detaillieren. Der numerische Wert von DEBUGGEN Level ist 10 und Sie müssen dieses Level für die Herstellung festlegen debuggen() Funktion aktiv. Die Verwendung dieser Funktion wird im folgenden Beispiel durch ein einfaches Skript angezeigt. Hier ist das Protokollebene auf Debugg eingestellt, um die Debug -Nachricht zu drucken. check_even () Funktion ist definiert, um zu überprüfen, ob die Eingabemummer ausgeglichen oder ungerade ist. Wenn die Nummer noch nicht einmal ist, gibt die Funktion eine Debug -Nachricht aus, sonst keine.

Beispiel6.py

#modul
Protokollierung importieren
# Legen Sie die Protokollebene auf Debuggen ein
Protokollierung.BasicConfig (Level = Protokollierung.DEBUGGEN)
#Declare -Funktion zur Überprüfung der Nummer
Def check_even (n):
#Überprüfen Sie, ob die Nummer gerade oder nicht ist
Wenn n%2 != 0:
#Print Debug -Nachricht
Protokollierung.Debugug ("Die Zahl ist nicht einmal")
#Wenden Sie eine Nummer vom Benutzer ein
n = input ("Bitte geben Sie eine gleichmäßige Nummer \ n"))
#Call die Funktion
check_even (int (n))

Führen Sie das Skript aus dem Terminal aus.

$ Python Beispiel6.py

Ausgang:
Das Skript wird für Zeiten mit einer gleichmäßigen Nummer eine ungerade Zahl ausgeführt. Wenn 55 als Eingabe angenommen werden, druckt sie die Debug -Nachricht und wenn 12 als Eingabe angenommen wird, wird keine Nachricht übergeben.

Zur Spitze gehen

Verwenden von info ()

die Info() Die Funktion wird verwendet, um dem Benutzer eine erfolgreiche oder allgemeine Nachricht zur Verfügung zu stellen, um zu bestätigen, dass der Code ordnungsgemäß funktioniert. Der numerische Wert von DIE INFO Level beträgt 20 und Sie müssen dieses Level vor der Verwendung festlegen die Info() Funktion. Die Verwendung dieser Funktion wird im folgenden Beispiel angezeigt. Hier werden zwei numerische Werte in zwei Variablen zugeordnet X Und y. Eine benutzerdefinierte Funktion 'Zusatz'wird deklariert, um die Summe von zu berechnen X Und y. die Info() Die Funktion wird verwendet, um die Funktion der Funktion und das Druckergebnis der Druckzusammenfassung aufzurufen.

Beispiel7.py

#modul
Protokollierung importieren
# Legen Sie die Protokollebene auf Infos ein
Protokollierung.BasicConfig (Level = Protokollierung.DIE INFO)
#Zwei Werte nach x und y abgeben
x = 30
y = 20
#Declare eine Funktion namens Addition
Def Addition (x, y):
#Zwei Zahlen
return (x+y)
#Printieren Sie die Summierungswerte als Info -Nachricht
Protokollierung.Info ("Summe von % d und % d ist % d" % (x, y, Addition (x, y)))

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel7.py

Ausgang:

Hier wird kein Logger -Objekt erstellt. Der Standard -Logger ist also root und die Summe von x und y beträgt 50. Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Warnungen ()

Warnung() Funktion wird verwendet, wenn ein unerwartetes Problem auftritt oder den Benutzer vor dem zukünftigen Problem warnen. Der numerische Wert des Warnniveaus beträgt 30. Warnung () Funktion funktioniert für den Standardprotokollger. Die Verwendung dieser Funktion wird im folgenden Beispiel angezeigt. Hier wird die Protokollebene zu Beginn des Skripts auf Warnung eingestellt. Dieses Skript berechnet den Bereich des Kreises basierend auf dem RADIUS -Wert. Wenn der Radiuswert Null ist, wird eine Warnmeldung gedruckt, sonst druckt der Bereich des Kreises.

Beispiel8.py

#modul
Protokollierung importieren
# Legen Sie die Protokollebene auf Infos ein
Protokollierung.BasicConfig (Level = Protokollierung.WARNUNG)
#Lesen Sie den Radiuswert als Eingabe
r = input ("Geben Sie eine Zahl \ n"))
#Declare eine Funktion namens
Def Area (Radius):
#Überprüfen Sie den Radiuswert
Wenn Radius == 0:
#Druckwarnung, wenn der Radius Null ist
Protokollierung.Warnung ("Radiuswert kann nicht Null sein")
anders:
#Kalkulieren Sie den Kreisbereich
print ("Bereich des Kreises = % d" % (3.14*Radius ** 2))
#Call die Funktion
Bereich (int (r))

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel8.py

Ausgang:

Das Skript wird zweimal in der Ausgabe mit den Radiuswerten 0 und 4 ausgeführt. Die Warnmeldung wird gedruckt, wenn der Radiuswert 0 ist und der Flächenwert gedruckt wird, wenn der Radius 4 beträgt.

Zur Spitze gehen

Verwenden von Fehler ()

Fehler() Funktion wird verwendet, wenn im Skript ein ernstes Problem vorliegt. Die numerische Fehlerebene beträgt 40. Fehler() Funktion funktioniert für den Standardprotokollger. Das folgende Beispiel zeigt die Verwendung des Fehler() Funktion. Die Funktion des Skripts besteht darin, einen vorhandenen Dateinamen als Eingabe zu nehmen und den Inhalt der Datei zu drucken. Betriebssystem.Weg Modul wird verwendet, um eine Datei in Python zu lesen. Dieses Modul wird also zuerst importiert. Wenn der Dateiname, der als Eingabe annimmt, im System nicht vorhanden ist.

Beispiel9.py

#import os.Pfadmodul
OS importieren.Weg
vom OS -Importpfad
#Mort -Protokollierungsmodul
Protokollierung importieren
# Legen Sie die Protokollebene auf Fehler fest
Protokollierung.BasicConfig (Level = Protokollierung.FEHLER)
#Lesen Sie den Radiuswert als Eingabe
fn = input ("Geben Sie einen Dateinamen \ n"))
#Declare eine Funktion namens
Def ReadFile (Dateiname):
#Überprüfen Sie, ob die Datei existiert oder nicht
Wenn Pfad.existiert (Dateiname) == 0:
#Druckfehlermeldung Wenn die Datei nicht vorhanden ist
Protokollierung.Fehler ("Datei nicht existiert")
anders:
#READEN UND DRUCKEN SIE DIE DATEI, falls vorhanden
FH = Open (Dateiname, "R")
print ("\ nfile Inhalt: \ n % s" % (FH.lesen()))
#Call die Funktion
ReadFile (FN)

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel9.py

Ausgang:

Das Skript wird zweimal in der folgenden Ausgabe ausgeführt. Zum ersten Mal existiert der Dateiname, der als Eingabe angegeben wird, im System nicht und die Fehlermeldung wird gedruckt. Zum zweiten Mal ist der Dateiname, der als Eingabe angenommen wird, im System vorhanden und der Inhalt der Datei wird gedruckt.

Zur Spitze gehen

Mit kritisch () verwenden

Critical () -Funktion wird auch verwendet, um das ernsthafte Problem anzuzeigen, das die Ausführung des Skripts stoppen kann. Das logarithmische Log -Level von kritisch ist 50. kritisch() Funktion funktioniert für den Standardprotokollger. Die Verwendung dieser Funktion wird im folgenden Beispiel angezeigt. Hier werden der Benutzer als Dividende und Divisor zwei Eingabewerte entnommen. Wenn der Divisorwert 0 ist, tritt ein kritischer Fehler auf und eine kritische Nachricht wird gedruckt.

Beispiel10.py

#modul
Protokollierung importieren
# Setzen Sie die Protokollebene auf kritisch
Protokollierung.BasicConfig (Level = Protokollierung.KRITISCH)
#Wenden Sie den Dividendenwert
Dividend = int (Eingabe ("Eingeben Sie den Wert der Dividend \ n"))
#Wenden Sie den Divisorwert
Divisor = int (Eingabe ("Eingeben Sie den Wert des Divisors \ n"))
versuchen:
#Diviehen Sie die Zahlen
Druck (Dividende/Divisor)
Außer ZerodivisionError:
#Print der kritischen Nachricht
Protokollierung.kritisch ("Division by Zero ERROR")

Führen Sie das Skript aus dem Terminal aus.

$ Python Beispiel10.py

Ausgang:

Das Skript wird zweimal in der folgenden Ausgabe ausgeführt. Wenn 78 und 0 als Eingabe angenommen werden, wird die kritische Fehlermeldung gedruckt. Wenn 24 und 2 als Eingabe genommen werden, dann 12.0 wird als Ausgabe gedruckt.

Ausgang.

Zur Spitze gehen

Anmelden bei einer Datei

Die Ausgabe der Protokollierung wird standardmäßig in der Konsole angezeigt. Sie können jedoch die Ausgabe der Protokollierung in eine Datei speichern, indem Sie das Dateiname -Argument von BasicConfig () -Funktion verwenden. Wie Sie Protokollierungsinformationen in eine Datei speichern können, wird im Beispiel angezeigt. Hier, 'Mein.Protokoll'wird als Dateiname zugewiesen und im Dateinamenargument von BasicConfig () gespeichert. Die Protokollierungsstufe wird auf Debuggen eingestellt. Nach dem Ausführen des Skripts, 'Mein.Protokoll' Die Datei wird erstellt und Protokollnachrichten werden in der Datei gespeichert.

Beispiel11.py

#Mort -Protokollierungsmodul
Protokollierung importieren
#SETZEN SIE DEN LOG -Dateinamen
Dateiname = 'mein.Protokoll'
#Setzen Sie den Log -Dateinamen und den Level
Protokollierung.BasicConfig (Dateiname = Dateiname, Level = Protokollierung.DEBUGGEN)
#Drucknachrichten an die Datei
Protokollierung.Debugg ('Debug -Nachricht')
Protokollierung.info ('info meldung')
Protokollierung.Fehler ('Fehlermeldung')

Führen Sie das Skript aus und sehen Sie sich den Inhalt von an Mein.Protokoll Datei aus dem Terminal.

$ python Beispiel11.py
$ cat mein.Protokoll

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Variablen bei der Protokollierung

Alle Daten aus dem Skript können dem Protokoll mithilfe der Variablen in Python zum Protokoll hinzugefügt werden. Dieses Beispiel zeigt, wie Sie jede Python -Variable in der Protokollnachricht übergeben können. In diesem folgenden Skript werden zwei Zeichenfolge von den Benutzern als aufgenommen Nutzername Und Passwort. Wenn die Eingabewerte mit den im Skript genannten Werten übereinstimmen, wird eine Fehlerprotokollnachricht mit dem Wert von übergeben Errmsg Variable. Wenn die Werte nicht übereinstimmen, wird eine Info -Protokoll -Nachricht mit dem Wert derselben Variablen gedruckt.

Beispiel12.py

#Modul
Protokollierung importieren
#Create Logger
logger = Protokollierung.getLogger ('mylog')
#TEILE zwei Eingaben in den Variablen 'Benutzernamen' und 'Passwort'
Benutzername = input ("Benutzername \ n eingeben")
password = input ("Passwort eingeben \ n")
#Konfiguration Protokollierung mit Format und Ebene
Protokollierung.BasicConfig (Format = '%(Nachricht) S', Level = 10)
"Überprüfen Sie, ob der Benutzername und das Passwort gültig sind oder nicht. Zuordnen
Erfolgsnachricht für gültige Benutzer- und Fehlermeldungen für den ungültigen Benutzer
in die Variable 'errmsg'. Die Variable "Errflag" wird 1 für Fehler festgelegt
und 0 für den Erfolg.
"
Wenn Benutzername == 'Fahmida' und Passwort == 'Secret':
Errflag = 0
Errmsg = 'Authentifizierung erfolgreich'
anders:
Errflag = 1
Ermsg = 'Authentifizierung fehlgeschlagen'
#Druckprotokollnachricht basierend auf 'Errflag'
Wenn erflag:
Logger.Fehler ('%s: Ungültiger Benutzer', Errmsg)
anders:
Logger.Info ('%s: gültiger Benutzer', Errmsg)

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel12.py

Ausgang:

Das Skript wird zweimal mit den gültigen Daten und ungültigen Daten in der folgenden Ausgabe ausgeführt. Wenn 'Administrator' Und 'Geheimnis'werden als verabschiedet als Nutzername Und Passwort Das sind ungültige Daten, dann wurde eine Fehlermeldung in die Variable gespeichert, Errmsg. Wenn 'Fahmida ' Und 'Geheimnis' werden als Nutzername Und Passwort Als Eingabe, die gültige Daten sind, wird eine Erfolgsnachricht in der Variablen gespeichert, Errmsg. Der Wert von Errmsg wird mit der Protokollfehlermeldung für den Fehler und mit der Protokollinfo -Nachricht für den Erfolg gedruckt.

Zur Spitze gehen

Verwenden von Ausnahme ()

Ausnahme() Die Funktion wird bei der Protokollierung verwendet, wenn das Python -Skript einen Ausnahmehandlercode enthält. Es funktioniert wie Fehler () der Protokollierung wie Fehler (). Der Unterschied ist das Ausnahme() Funktion zeigt die Stapelverfolgung zusammen mit der Ausgabe an. Die Verwendung dieser Funktion wird im folgenden Beispiel angezeigt. Das folgende Skript nimmt einen numerischen Wert als Eingabe an und erhöht eine Ausnahme, wenn der Eingabewert negativ ist. Hier, Ausnahme() Die Funktion druckt den Ausnahmenachricht für Ausnahme.

Beispiel13-py

#Mort -Protokollierungsmodul
Protokollierung importieren
#Eine Eingabe
number = int (input ("eine positive Zahl \ n")))
versuchen:
#Überprüfen Sie, ob der Eingangswert positiv oder negativ ist
Wenn Nummer < 0 :
Ausnahme erhöhen ("Eingabewert ist negativ"))
außer Ausnahme als E:
#Print der Ausnahmenachricht
Protokollierung.Ausnahme (e)

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel13.py

Ausgang:

Wenn das Skript mit dem negativen Wert -89 ausgeführt wird, hat es eine Ausnahme ausgelöst und die Stapelspur- und Ausnahmebereich ausgedruckt. Wenn das Skript mit positiven Wert 13 ausgeführt wird, wird keine Nachricht gedruckt.

Zur Spitze gehen

Handler erstellen

Protokolleinträge können auf unterschiedliche Weise unter Verwendung verschiedener Handler behandelt werden. Die am häufigsten verwendeten Handler für die Protokollierung sind FileHandler Und Streamhandler. FileHandler wird verwendet, um die Protokolleinträge an eine Datei zu senden und Streamhandler wird verwendet, um die Protokolleinträge an eine Konsole zu senden. Die Verwendungen dieser Handler werden im folgenden Beispiel angezeigt. In diesem Skript ist die Debug -Ebene für auf FileHandler Objekt- und Info -Ebene wird für ein festgelegt Streamhandler Objekt. Dafür werden Debug- und Info -Nachrichten in der gespeichert Logdaten.Protokoll Datei- und Info -Nachricht werden in der Konsole gedruckt.

Beispiel14.py

#modul
Protokollierung importieren
#Create Logger
logger = Protokollierung.getLogger ('mylog')
#Set Logging Level
Logger.Setlevel (Protokollierung.DEBUGGEN)
#Create streamHandler -Objekt
Chandler = Protokollierung.StreamHandler ()
#Set -Level für StreamHandler
Chandler.Setlevel (Protokollierung.DIE INFO)
#Create FileHandler -Objekt
Fhandler = Protokollierung.FileHandler ('logData.Protokoll')
#Set -Ebene für FileHandler
Fhandler.Setlevel (Protokollierung.DEBUGGEN)
#Add FileHandler -Objekt zum Protokollger
Logger.Addhandler (Fhandler)
#Add StreanHandler -Objekt an Logger
Logger.Addhandler (Chandler)
#Print -Protokollnachrichten
Logger.Debugg ('Print -Debug -Nachricht')
Logger.Info ('Print Info Message')

Führen Sie das Skript aus und sehen Sie sich den Inhalt von 'logData an.Log 'Datei aus dem Terminal protokollieren.

$ python Beispiel14.py
$ cat logdata.Protokoll

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Unter Verwendung von Formatter ()

Formatter () Funktion wird verwendet, um den Inhalt und die Struktur von Protokolldaten zu konfigurieren. Wie Sie verwenden können Formatter () Funktion zum Konfigurieren der Protokolldaten von FileHandler Das Objekt wird im folgenden Beispiel angezeigt. Hier, Formatter () wird verwendet, um die Protokolldaten mit Erstellungszeit, Logger -Namen und Protokollnachricht zu formatieren. MyLog.Protokoll Die Datei wird nach der Ausführung des Skripts erstellt und die formatierten Protokollnachrichten werden in der Datei gespeichert.

Beispiel15.py

#modul
Protokollierung importieren
# Erstellen Sie einen benutzerdefinierten Logger
logger = Protokollierung.getLogger ()
# Handler erstellen
Datei_handler = Protokollierung.FileHandler ('myLog.Protokoll')
#Set Handler -Protokollprotokollebene
Datei_handler.Setlevel (Protokollierung.DEBUGGEN)
# Formatierer erstellen
Datei_Format = Protokollierung.Formatter (' %(asctime) s - %(LevelName) S - %(Nachricht) S'))
#Add Formatierer zum Handler
Datei_handler.setFormatter (Datei_Format)
#Add Handler an den Logger
Logger.addHandler (Datei_handler)
#Print -Protokollnachrichten
Logger.Warnung ('Warnmeldung')
Logger.Fehler ('Fehlermeldung')

Führen Sie das Skript aus und sehen Sie sich den Inhalt von 'logData an.Log 'Datei aus dem Terminal protokollieren.

$ python Beispiel15.py
$ cat mylog.Protokoll

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Logrecord.GetMessage ()

Wenn vom Logger etwas protokolliert wird, wird das lorcocd -Objekt automatisch erstellt. MakereCord () -Funktion kann verwendet werden. Das Logrecord -Objekt enthält viele Attribute und GetMessage () Funktion. Wenn das Logrecord -Objekt dann manuell erstellt wird GetMessage () Gibt die Nachricht des Logrecord -Objekts basierend auf den vom Benutzer übergebenen Argumenten zurück. Das folgende Beispiel zeigt die Verwendung von GetMessage () Funktion.

Beispiel16.py

#modul
Protokollierung importieren
#Create LOGRECORD -Objekt
logrec = Protokollierung.LOGRECORD ('MyLogger', 10, Home/Fahmida/Python/Beispiel2.py ', 4,
'Python Logging Tutorial', (), keine)
#CALL GetMessage () zum Drucken von Nachricht
drucken (logrec.GetMessage ())

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel16.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Logrecord -Attributen - Args

Args Attribut speichert die Argumente, die an das Logrecord -Objekt übergeben wurden. Die Werte von Args werden verschmolzen mit Nachricht Attribut, um den Wert von zu erzeugen Nachricht Attribut, wenn das logrecord -Objekt automatisch erstellt wird. Der Attributwert von Args kann gelesen werden, indem man manuell ein Logrecord -Objekt erstellen. Im folgenden Beispiel ein Logrecord -Objekt benannt Logrecord wird manuell von benutzerdefinierten Daten erstellt und der Wert des Arguments wird von gedruckt Args Attribut.

Beispiel17.py

#Modul
Protokollierung importieren
#Create Custom Log Log Record
LOGRECORD = Protokollierung.LOGRECORD ('MyNewlog', 30, 'Python/Code/Beispiel1.py ', 6,
'Python -Protokollierungs -Tutorial', 'Test', ")
#Print args Wert
drucken (logrecord.args)

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel17.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Logrecord -Attributen - asctime

asctime Das Attribut wird verwendet, um die Zeit zu speichern, in der ein Leiter erstellt wird. Es wurde Datum, Uhrzeit und Zeiten in Millisekunden nach dem Erstellen eines Logger -Objekts gespeichert. Das folgende Beispiel zeigt die Verwendung dieses Attributs. Das Format dieses Attributs ist '%(asctime) s' '.

Beispiel18.py

#Modul
Protokollierung importieren
#Create Logger mit Namen
logger = Protokollierung.getLogger ('mylog')
#Setzen Sie die Formatierung zum Lesen von 'asctime' Attribut
lformat = '%(asctime) s' '
#Configure -Protokollierung mit Format
Protokollierung.BasicConfig (format = lformat)
#Print -Protokollnachricht
Logger.Warnung ('Es ist eine Warnmeldung')

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel18.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Logrecord -Attributen - Dateiname

Dateinamen Das Attribut wird verwendet, um den Teil des Dateinamens vom Pfad abzurufen. Das folgende Beispiel zeigt die Verwendung dieses Attributs. Das Format dieses Attributs ist '%(Dateiname) S'.

Beispiel19.py

#Modul
Protokollierung importieren
#Setzen Sie die Formatierung zum Lesen der Attribute "Nachricht" und "Dateiname"
LFormat = ' %(Nachricht) S - %(Dateiname) s' '
#Configure -Protokollierung mit Format
Protokollierung.BasicConfig (format = lformat)
#Print -Protokollnachricht
Protokollierung.Fehler ('Die Fehlermeldung in der Datei aufgetreten')

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel19.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Logrecord -Attributen - Funktionsname

Funktionsname Das Attribut besteht darin, den Funktionsnamen abzuholen, von dem die Protokollierung aufgerufen wird. Das folgende Beispiel zeigt die Verwendung dieses Attributs. Hier wird das Logger -Objekt in der Funktion erstellt, myLog_func (). Das Format dieses Attributs ist '%(funcname) s' '.

Beispiel20.py

#Modul
Protokollierung importieren
#Declare -Funktion
def mylog_func ():
#Setzen Sie die Formatierung zum Lesen der Attribute "Nachricht" und "Funcname"
LFormat = ' %(Nachricht) S - %(Funcname) s' '
#Configure -Protokollierung mit Format
Protokollierung.BasicConfig (format = lformat)
#Print -Protokollnachricht
Protokollierung.kritisch ('Der Logger wird aus der Funktion aufgerufen))
#Die Funktion zur Protokollierung
myLog_func ()

Führen Sie das Skript aus dem Terminal aus.

$ Python Beispiel20.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Logrecord -Attributen - Leineno

Linie Nr Das Attribut wird verwendet, um die Zeilennummer abzuholen, von der die Protokollierung aufgerufen wird. Es gibt einen numerischen Wert zurück. Das folgende Beispiel zeigt die Verwendung dieses Attributs. Das Format dieses Attributs ist '%(lineno) s' '.

Beispiel21.py

#Modul
Protokollierung importieren
#Setzen Sie die Formatierung zum Lesen der Attribute "Nachricht" und "Leineno"
LFormat = ' %(Nachricht) S - %(Lineno) D'
#Configure -Protokollierung mit Format
Protokollierung.BasicConfig (format = lformat, Level = 20)
#Create Logger
logger = Protokollierung.getLogger ()
#Print -Protokollnachricht
Logger.Info ('Der Protokollierungsanruf wird bei Leineno ausgestellt))

Führen Sie das Skript aus dem Terminal aus.

$ Python Beispiel21.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Logrecord -Attributen - Modul

Modul Das Attribut wird verwendet, um nur den Dateinamen ohne eine Erweiterung aus dem Dateipfad abzurufen. Das folgende Beispiel zeigt die Verwendung dieses Attributs. Das Format dieses Attributs ist '%(Modul) S'.

Beispiel22.py

#Modul
Protokollierung importieren
#Setzen Sie die Formatierung zum Lesen der Attribute "Nachricht" und "Modul"
LFormat = ' %(Nachricht) S - %(Modul) S'
#Konfiguration Protokollierung mit Format und Ebene
Protokollierung.BasicConfig (format = lformat, Level = Protokollierung.DIE INFO)
#Print -Protokollnachricht
Protokollierung.Info ('Der Name der Datei ohne Erweiterung ist')

Führen Sie das Skript aus dem Terminal aus.

$ Python Beispiel22.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Logrecord -Attributen - Name

Name Das Attribut wird verwendet, um den Logger -Namen abzurufen, der in GetLogger () -Funktion verwendet wird. Das folgende Beispiel zeigt die Verwendung dieses Attributs. Das Format dieses Attributs ist '%(Name) S'.

Beispiel23.py

#Modul
Protokollierung importieren
#Setzen Sie die Formatierung zum Lesen der Attribute "Nachricht" und "Name"
LFormat = ' %(Nachricht) S - %(Name) S'
#Konfiguration Protokollierung mit Format und Ebene
Protokollierung.BasicConfig (format = lformat, Level = Protokollierung.DIE INFO)
#Setzen Sie den Logger -Namen
logger = Protokollierung.getLogger ('mylog')
#Print -Protokollnachricht
Logger.Info ('Der Logger -Name ist')

Führen Sie das Skript aus dem Terminal aus.

$ python Beispiel23.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Logrecord -Attributen - Pfadname

Pfadname Das Attribut wird verwendet, um den Pfad des Dateispeichers abzurufen. Das folgende Beispiel zeigt die Verwendung dieses Attributs. Das Format dieses Attributs ist '%(Pathname) S'.

Beispiel24.py

#Modul
Protokollierung importieren
#Setzen Sie die Formatierung zum Lesen der Attribute "Nachricht" und "PathName"
LFormat = ' %(Nachricht) S: %(Pathname) S'
#Konfiguration Protokollierung mit Format und Ebene
Protokollierung.BasicConfig (format = lformat, Level = Protokollierung.DIE INFO)
#Print -Protokollnachricht
Protokollierung.info ('Dateispeicherort')

Führen Sie das Skript aus dem Terminal aus.

$ Python Beispiel24.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Verwenden von Protokollierung.deaktivieren

DISABLE () -Funktion wird verwendet, um den gesamten Protokollierungsaufruf für die spezifische Ebene zu deaktivieren. Wenn es beispielsweise mit Info -Ebene aufgerufen wird, werden alle Protokollnachrichten von Informationen, Warnungen, Fehler und kritisch für alle Logger ignoriert. Die Verwendung dieser Funktion wird im folgenden Beispiel angezeigt. Die Warnmeldung ist für den Standardprotokoller aktiviert. Die zweite Warnmeldung wird also nach Deaktivieren der Warnstufe nicht gedruckt.

Beispiel25.py

#modulmodul
Protokollierung importieren
#Create und konfigurieren Logger
Protokollierung.BasicConfig (format = '%(Nachricht) S')
#Ein Objekt erstellen
logger = Protokollierung.getLogger ()
# Testmeldungen vor Deaktivieren drucken
Logger.Warnung ("Test Warnmeldung 1")
Protokollierung.Deaktivieren (Protokollierung.WARNUNG)
Logger.Warnung ("Test Warnmeldung 2")

Führen Sie das Skript aus dem Terminal aus.

$ Python Beispiel25.py

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Zur Spitze gehen

Abschluss

Protokollierungsinformationen hilft dem Coder, die verschiedenen Probleme des Codes zu identifizieren und das Problem schnell zu lösen. Der Python -Programmierer muss Python -Protokollierungsoptionen lernen, um seinen Code angemessener zu machen. Die grundlegenden Verwendungen der Python -Protokollierung werden in diesem Artikel unter Verwendung von 25 verschiedenen Beispielen angezeigt. Ich hoffe, dieser Artikel hilft den Lesern, sich für die ordnungsgemäß.