Logging auf stdout in Python
-
Loggen Sie sich auf
stdout
mit der Funktionlogging.basicConfig()
in Python -
Loggen Sie sich auf
stdout
mit der Funktionlogging.StreamHandler()
in Python
In diesem Tutorial werden die Methoden zum Schreiben von Protokollen in eine Datei und stdout in Python eingeführt.
Loggen Sie sich auf stdout
mit der Funktion logging.basicConfig()
in Python
Wenn wir unsere Protokolle in das Konsolenfenster drucken und die Protokolle in eine Datei schreiben möchten, können wir für diesen Vorgang die logging.basicConfig()
-Funktion verwenden. Die Funktion logging.basicConfig()
konfiguriert einige grundlegende Parameter für das Logging in Python. Mit dem Parameter stream
dieser Funktion können wir festlegen, dass dieses Protokoll auch im Konsolenfenster gedruckt werden soll. Der Rest der Konfiguration bleibt gleich wie das Schreiben eines Logs in eine Datei mit der Funktion logging.basicConfig()
. Der folgende Code zeigt, wie wir Protokolle in das Konsolenfenster schreiben können.
import logging
import sys
# Creating and Configuring Logger
Log_Format = "%(levelname)s %(asctime)s - %(message)s"
logging.basicConfig(
filename="logfile.log",
stream=sys.stdout,
filemode="w",
format=Log_Format,
level=logging.ERROR,
)
logger = logging.getLogger()
# Testing our Logger
logger.error("Our First Error Message")
Ausgabe:
2021-06-13 05:15:24,093 - root - ERROR - Our First Error Message
Loggen Sie sich auf stdout
mit der Funktion logging.StreamHandler()
in Python
Wir können auch die Funktion logging.StreamHandler()
verwenden, um Protokolle in das Konsolenfenster in Python zu schreiben. Indem wir sys.stdout
an die Funktion logging.StreamHandler()
übergeben, können wir einen Stream-Handler erstellen, der die Protokollnachricht im Konsolenfenster ausgeben kann. Diesen Stream-Handler können wir dann mit der Funktion addHandler()
zu unserem Logger-Objekt hinzufügen. Der folgende Codeausschnitt zeigt uns, wie wir mit der Funktion logging.StreamHandler()
Log-Meldungen in das Konsolenfenster ausgeben können.
import logging
import sys
logger = logging.getLogger()
fileHandler = logging.FileHandler("logfile.log")
streamHandler = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
streamHandler.setFormatter(formatter)
fileHandler.setFormatter(formatter)
logger.addHandler(streamHandler)
logger.addHandler(fileHandler)
logger.error("This is the first error")
Ausgabe:
2021-06-13 05:03:37,510 - root - ERROR - This is the first error
Wir haben die Log-Meldung This is the first error
in die Datei logfile.log
und das Konsolenfenster mit den Funktionen logging.FileHandler()
und logging.StreamHandler()
im obigen Code geschrieben. Wir haben zuerst ein Logger-Objekt erstellt, mit dem wir mit der Funktion logging.getLogger()
Logs schreiben. Dann haben wir einen Dateihandler fileHandler
erstellt und ihm logging.FileHandler('logfile.log')
zugewiesen.
Danach haben wir einen Stream-Handler, streamHandler
, erstellt und logging.StreamHandler(sys.stdout)
zugewiesen. Danach haben wir einen Formatierer erstellt, um unsere Ausgabe mit der Funktion logging.Formatter()
zu formatieren und den Formatierer sowohl für fileHandler
als auch für streamHandler
mit der Funktion setFormatter()
einzustellen. Im Anschluss an den vorherigen Schritt haben wir unserem Logger-Objekt mit der Funktion addHandler()
die beiden neuen Handler hinzugefügt. Am Ende haben wir die Fehlermeldung mit logger.error('This is the first error')
in unsere Datei und das Konsolenfenster geschrieben.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn