bpo-35726: Prevented QueueHandler formatting from affecting other handlers (GH-11537)
QueueHandler.prepare() now makes a copy of the record before modifying and enqueueing it, to avoid affecting other handlers in the chain.
This commit is contained in:
parent
6d43f6f081
commit
da6424e96a
|
@ -27,6 +27,7 @@ import logging, socket, os, pickle, struct, time, re
|
|||
from stat import ST_DEV, ST_INO, ST_MTIME
|
||||
import queue
|
||||
import threading
|
||||
import copy
|
||||
|
||||
#
|
||||
# Some constants...
|
||||
|
@ -1377,6 +1378,8 @@ class QueueHandler(logging.Handler):
|
|||
# exc_info and exc_text attributes, as they are no longer
|
||||
# needed and, if not None, will typically not be pickleable.
|
||||
msg = self.format(record)
|
||||
# bpo-35726: make copy of record to avoid affecting other handlers in the chain.
|
||||
record = copy.copy(record)
|
||||
record.message = msg
|
||||
record.msg = msg
|
||||
record.args = None
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
QueueHandler.prepare() now makes a copy of the record before modifying and enqueueing it, to avoid affecting other handlers in the chain.
|
Loading…
Reference in New Issue