summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Lib/logging/config.py1
-rw-r--r--Lib/test/test_logging.py34
2 files changed, 33 insertions, 2 deletions
diff --git a/Lib/logging/config.py b/Lib/logging/config.py
index 3bc63b7862..5cab008f8d 100644
--- a/Lib/logging/config.py
+++ b/Lib/logging/config.py
@@ -794,6 +794,7 @@ class DictConfigurator(BaseConfigurator):
"""Configure a non-root logger from a dictionary."""
logger = logging.getLogger(name)
self.common_logger_config(logger, config, incremental)
+ logger.disabled = False
propagate = config.get('propagate', None)
if propagate is not None:
logger.propagate = propagate
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index 920bbeb660..74e950450c 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -1,4 +1,4 @@
-# Copyright 2001-2021 by Vinay Sajip. All Rights Reserved.
+# Copyright 2001-2022 by Vinay Sajip. All Rights Reserved.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted,
@@ -16,7 +16,7 @@
"""Test harness for the logging module. Run all tests.
-Copyright (C) 2001-2021 Vinay Sajip. All Rights Reserved.
+Copyright (C) 2001-2022 Vinay Sajip. All Rights Reserved.
"""
import logging
@@ -3439,6 +3439,36 @@ class ConfigDictTest(BaseTest):
logging.info('some log')
self.assertEqual(stderr.getvalue(), 'some log my_type\n')
+ def test_90195(self):
+ # See gh-90195
+ config = {
+ 'version': 1,
+ 'disable_existing_loggers': False,
+ 'handlers': {
+ 'console': {
+ 'level': 'DEBUG',
+ 'class': 'logging.StreamHandler',
+ },
+ },
+ 'loggers': {
+ 'a': {
+ 'level': 'DEBUG',
+ 'handlers': ['console']
+ }
+ }
+ }
+ logger = logging.getLogger('a')
+ self.assertFalse(logger.disabled)
+ self.apply_config(config)
+ self.assertFalse(logger.disabled)
+ # Should disable all loggers ...
+ self.apply_config({'version': 1})
+ self.assertTrue(logger.disabled)
+ del config['disable_existing_loggers']
+ self.apply_config(config)
+ # Logger should be enabled, since explicitly mentioned
+ self.assertFalse(logger.disabled)
+
class ManagerTest(BaseTest):
def test_manager_loggerclass(self):
logged = []