Heim > Artikel > Backend-Entwicklung > Wie protokolliere ich in Python gleichzeitig bei Stdout und Protokolldatei?
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!