Wie protokolliere ich mit logging.StreamHandler sowohl eine Datei als auch eine Konsole in Python?

Susan Sarandon
Freigeben: 2024-10-18 19:00:29
Original
568 Leute haben es durchsucht

How to Log to Both File and Console in Python Using logging.StreamHandler?

Protokollierung in Datei und Konsole in Python

Python-Protokollierung bietet robuste Funktionalität für die Nachrichtenverarbeitung. Standardmäßig werden Nachrichten normalerweise in eine bestimmte Protokolldatei geschrieben. Möglicherweise möchten Sie diese Meldungen jedoch auch auf der Konsole duplizieren, um eine sofortige Sichtbarkeit während der Programmausführung sicherzustellen.

Um dies zu erreichen, verwenden Sie die Klasse logging.StreamHandler, mit der Sie Protokolle schreiben können Ausgabe an sys.stdout, den Standardausgabestream. Befolgen Sie diese Schritte:

  1. Importieren Sie das Protokollierungsmodul: Beginnen Sie mit dem Importieren des Protokollierungsmoduls in Ihr Skript.
  2. Konfigurieren Sie einen StreamHandler: Erstellen Sie eine Instanz von logging.StreamHandler und geben Sie das Ziel des Ausgabestreams an, z. B. sys.stdout für die Konsolenausgabe. Sie können auch die Ebene des Handlers festlegen, um die von ihm verarbeiteten Nachrichten zu filtern.
  3. Formatierer festlegen: Definieren Sie ein logging.Formatter-Objekt, um die Ausgabenachrichten zu formatieren. Sie können die gewünschte Formatzeichenfolge angeben, um das Nachrichtenlayout anzupassen.
  4. Hängen Sie den Handler an den Root-Logger an: Fügen Sie den konfigurierten StreamHandler zum Root-Logger hinzu, um die Protokollierung von Nachrichten sowohl in der Protokolldatei zu ermöglichen und die Konsole. Dazu gehört das Festlegen seiner Ebene und das Hinzufügen des Handlers.

Hier ist ein Beispiel für die Konfiguration eines StreamHandlers:

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

# Create a StreamHandler using sys.stdout
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)

# Define a formatter and set it on the handler
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# Add the handler to the root logger
root = logging.getLogger()
root.addHandler(handler)</code>
Nach dem Login kopieren

Durch die Implementierung dieser Schritte können Sie alle Protokollierungsmeldungen bequem ausgeben sowohl in die Protokolldatei als auch in die Konsole und bietet so einen umfassenden Überblick über die Protokollierungsaktivität Ihrer Anwendung.

Das obige ist der detaillierte Inhalt vonWie protokolliere ich mit logging.StreamHandler sowohl eine Datei als auch eine Konsole in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage