Heim  >  Artikel  >  Backend-Entwicklung  >  Wie protokolliere ich in Python gleichzeitig bei Stdout und Protokolldatei?

Wie protokolliere ich in Python gleichzeitig bei Stdout und Protokolldatei?

DDD
DDDOriginal
2024-10-18 18:55:291035Durchsuche

How to Log to Stdout and Log File Simultaneously in Python?

Gleichzeitiges Schreiben von Protokollen in Stdout und Protokolldatei in Python

Die Steuerung der Protokollausgabe kann für das Debuggen und Erfassen wichtiger Informationen in Python von entscheidender Bedeutung sein. Das Protokollierungsmodul bietet umfangreiche Möglichkeiten zum Protokollieren von Nachrichten in Dateien. Es kann jedoch von Vorteil sein, Protokolle auch auf der Konsole (stdout) anzuzeigen, um sie sofort sichtbar zu machen.

Lösung:

Um sicherzustellen, dass alle Protokollierungsmeldungen auf stdout ausgegeben werden Zusätzlich zur vorgesehenen Protokolldatei können Sie die Funktionalität des Protokollierungsmoduls erweitern, indem Sie einen logging.StreamHandler() zum Root-Logger hinzufügen.

Implementierung:

<code class="python">import logging
import sys

# Capture stdout
stdout = sys.stdout

# Create a root logger
root = logging.getLogger()

# Set the logging level (DEBUG in this case)
root.setLevel(logging.DEBUG)

# Define the StreamHandler
handler = logging.StreamHandler(stdout)

# Configure the message format
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# Add the StreamHandler to the root logger
root.addHandler(handler)</code>

Mit dieser Änderung werden alle mit Methoden wie logger.warning, logger.critical und logger.error protokollierten Nachrichten sowohl in die konfigurierte Protokolldatei geschrieben als auch direkt auf stdout angezeigt. Dies vereinfacht die Fehlerbehebung und stellt sicher, dass Meldungen sofort zur Überprüfung zugänglich sind.

Das obige ist der detaillierte Inhalt vonWie protokolliere ich in Python gleichzeitig bei Stdout und Protokolldatei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn