Python -ProtokollierungsstreamHandler bewirkt, dass Stack_info zweimal gedruckt wirdPython

Python-Programme
Guest
 Python -ProtokollierungsstreamHandler bewirkt, dass Stack_info zweimal gedruckt wird

Post by Guest »

Ich verwende Python 3.9 und das Protokollierungsmodul. Wenn ich eine Queuhandler und die Funktion stack_info nutze, druckt die Stapel -Trace -Informationen zweimal druckt. Jemand weiß, wie man diese Duplikation vermeidet? < /P>
Dies funktioniert korrekt ohne Queuhandler:

Code: Select all

import logging
import time

stream_handler = logging.StreamHandler ()

lo = logging.getLogger ()
lo.addHandler (stream_handler)

lo.error ("This is an example error", stack_info = True)

time.sleep (1)
Dies enthält zweimal die Stapelverfolgung, und die einzige Änderung, die ich vorgenommen habe, bestand darin, einen Queuhandler/Queuelistener einzufügen:

Code: Select all

import logging
import logging.handlers
import queue
import time

stream_handler = logging.StreamHandler ()

q = queue.Queue (-1)
queue_handler = logging.handlers.QueueHandler (q)

lo = logging.getLogger ()
lo.addHandler (queue_handler)

queue_listener = logging.handlers.QueueListener (q, stream_handler)
queue_listener.start ()

lo.error ("This is an example error", stack_info = True)

time.sleep (1)
Ausgabe mit der Anordnung von Queuhandler/Queuuelistener ist die gleiche wie ohne, außer dass die Stapelspur zweimal erscheint:

Code: Select all

# ./logtest-q.py
This is an example error
Stack (most recent call last):
File "/home/jcharles/./logtest-q.py", line 19, in 
lo.error ("This is an example error", stack_info = True)
Stack (most recent call last):
File "/home/jcharles/./logtest-q.py", line 19, in 
lo.error ("This is an example error", stack_info = True)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post