[3.13] gh-118868: logging QueueHandler fix passing of kwargs (GH-118869) (GH-120032)

(cherry picked from commit dce14bb2dc)
This commit is contained in:
Miss Islington (bot) 2024-06-04 14:18:11 +02:00 committed by GitHub
parent 6ce2810f36
commit feaecf8c33
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 39 additions and 8 deletions

View file

@ -725,16 +725,16 @@ class DictConfigurator(BaseConfigurator):
def _configure_queue_handler(self, klass, **kwargs):
if 'queue' in kwargs:
q = kwargs['queue']
q = kwargs.pop('queue')
else:
q = queue.Queue() # unbounded
rhl = kwargs.get('respect_handler_level', False)
if 'listener' in kwargs:
lklass = kwargs['listener']
else:
lklass = logging.handlers.QueueListener
listener = lklass(q, *kwargs.get('handlers', []), respect_handler_level=rhl)
handler = klass(q)
rhl = kwargs.pop('respect_handler_level', False)
lklass = kwargs.pop('listener', logging.handlers.QueueListener)
handlers = kwargs.pop('handlers', [])
listener = lklass(q, *handlers, respect_handler_level=rhl)
handler = klass(q, **kwargs)
handler.listener = listener
return handler