Closed
Description
Bug report
Bug description:
This worked fine on previous versions:
import logging
import logging.config
import logging.handlers
import multiprocessing as mp
def main():
config = {
'version': 1,
'handlers': {
'sink': {
'class': 'logging.handlers.QueueHandler',
'queue': mp.get_context('spawn').Queue(),
},
},
'root': {
'handlers': ['sink'],
'level': 'DEBUG',
},
}
logging.config.dictConfig(config)
if __name__ == '__main__':
main()
With Python 3.12, it drops an error:
Traceback (most recent call last):
File "/home/egor/.pyenv/versions/3.12-dev/lib/python3.12/logging/config.py", line 581, in configure
handler = self.configure_handler(handlers[name])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/egor/.pyenv/versions/3.12-dev/lib/python3.12/logging/config.py", line 786, in configure_handler
raise ValueError('No handlers specified for a QueueHandler')
ValueError: No handlers specified for a QueueHandler
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/egor/workspace/personal/cimple/../test.py", line 25, in <module>
main()
File "/home/egor/workspace/personal/cimple/../test.py", line 21, in main
logging.config.dictConfig(config)
File "/home/egor/.pyenv/versions/3.12-dev/lib/python3.12/logging/config.py", line 912, in dictConfig
dictConfigClass(config).configure()
File "/home/egor/.pyenv/versions/3.12-dev/lib/python3.12/logging/config.py", line 588, in configure
raise ValueError('Unable to configure handler '
ValueError: Unable to configure handler 'sink'
More than that, even the example in the Logging Cookbook is broken now: https://docs.python.org/3/howto/logging-cookbook.html#a-more-elaborate-multiprocessing-example (fails with the same error).
Version info:
# python -VV
Python 3.12.0+ (heads/3.12:f108785, Nov 1 2023, 19:47:19) [GCC 13.2.1 20230801]
CPython versions tested on:
3.12
Operating systems tested on:
Linux
Linked PRs
Metadata
Metadata
Assignees
Labels
Projects
Status
Done