Heim >Backend-Entwicklung >Python-Tutorial >Wie protokolliere ich mit dem Python-Protokollierungsmodul sowohl in Datei als auch in Stdout?
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 unkomplizierte 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:
<code class="python">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)</code>
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 und behalten gleichzeitig die ordnungsgemäßen Protokollierungspraktiken bei.
Das obige ist der detaillierte Inhalt vonWie protokolliere ich mit dem Python-Protokollierungsmodul sowohl in Datei als auch in Stdout?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!