Logging auf stdout in Python

Muhammad Maisam Abbas 30 Januar 2023
  1. Loggen Sie sich auf stdout mit der Funktion logging.basicConfig() in Python
  2. Loggen Sie sich auf stdout mit der Funktion logging.StreamHandler() in Python
Logging auf stdout 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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Verwandter Artikel - Python Logging