Protokollierung in Datei und Stdout in Python mit dem Protokollierungsmodul
Bei Verwendung des Python-Protokollierungsmoduls ist es wünschenswert, dass Protokollmeldungen ausgegeben werden nicht nur in die angegebene Protokolldatei, sondern auch nach stdout für sofortige Sichtbarkeit. Um dies zu erreichen, bietet das Protokollierungsmodul eine einfache Lösung.
Die Protokollierungskonfiguration basiert auf Handlern, um die Ausgabe zu leiten. Durch das Hinzufügen einer logging.StreamHandler()-Instanz zum Root-Logger ist es möglich, Nachrichten zusätzlich zu ihren beabsichtigten Zielen an stdout zu senden.
Ein Beispiel für die Konfiguration eines Stream-Handlers für die stdout-Ausgabe:
import logging
import sys
# Get the root logger
root = logging.getLogger()
# Set the root logger level to DEBUG
root.setLevel(logging.DEBUG)
# Create a stream handler and set its level to DEBUG
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)
# Create a formatter to format the log messages
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
# Add the handler to the root logger
root.addHandler(handler)
Durch die Implementierung dieser Konfiguration wird es unnötig, Protokollnachrichten sowohl mit Logger-Methoden als auch mit stdout-Druckanweisungen zu duplizieren. Logger wie mylogger.critical("something failed") geben die Daten sowohl in die angegebene Protokolldatei als auch in stdout aus und sorgen so für sofortige Sichtbarkeit bei gleichzeitiger Beibehaltung ordnungsgemäßer Protokollierungspraktiken.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3