This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: logging.config.dictConfig with disable_existing_loggers set, also disables loggers in configuration
Type: Stage:
Components: Versions: Python 3.10, Python 3.9, Python 3.8
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: vladmihaisima
Priority: normal Keywords:

Created on 2021-12-10 15:58 by vladmihaisima, last changed 2022-04-11 14:59 by admin.

Files
File name Uploaded Description Edit
bug.py vladmihaisima, 2021-12-10 15:58
Messages (1)
msg408216 - (view) Author: vladmihaisima (vladmihaisima) Date: 2021-12-10 15:58
When invoking logging.config.dictConfig - if a logger was previously disabled (for example by a call to "logging.config.dictConfig({'version': 1})") - the loggers specified in the dictionary will not be enabled.

Documentation at https://docs.python.org/3/library/logging.config.html specifies for disable_existing_loggers that "... behaviour is to disable any existing non-root loggers unless they or their ancestors are explicitly named in the logging configuration.". There is no explicit mention for what happens when a logger exists and is already disabled. I would have assumed that if present it will be enabled, but that does not seem to be the case.

So I think that if a logger is disabled invoking dictConfig cannot re-enable it.

See attached code for a reproducible case.
History
Date User Action Args
2022-04-11 14:59:53adminsetgithub: 90195
2021-12-10 15:58:08vladmihaisimacreate