Commit b19321cb authored by Vinay Sajip's avatar Vinay Sajip

Issue #17521: Corrected non-enabling of logger following two calls to fileConfig().

parent 0a39a5ac
...@@ -175,8 +175,8 @@ def _handle_existing_loggers(existing, child_loggers, disable_existing): ...@@ -175,8 +175,8 @@ def _handle_existing_loggers(existing, child_loggers, disable_existing):
logger.level = logging.NOTSET logger.level = logging.NOTSET
logger.handlers = [] logger.handlers = []
logger.propagate = True logger.propagate = True
elif disable_existing: else:
logger.disabled = True logger.disabled = disable_existing
def _install_loggers(cp, handlers, disable_existing): def _install_loggers(cp, handlers, disable_existing):
"""Create and install loggers""" """Create and install loggers"""
......
...@@ -764,9 +764,30 @@ class ConfigFileTest(BaseTest): ...@@ -764,9 +764,30 @@ class ConfigFileTest(BaseTest):
datefmt= datefmt=
""" """
def apply_config(self, conf): disable_test = """
[loggers]
keys=root
[handlers]
keys=screen
[formatters]
keys=
[logger_root]
level=DEBUG
handlers=screen
[handler_screen]
level=DEBUG
class=StreamHandler
args=(sys.stdout,)
formatter=
"""
def apply_config(self, conf, **kwargs):
file = io.StringIO(textwrap.dedent(conf)) file = io.StringIO(textwrap.dedent(conf))
logging.config.fileConfig(file) logging.config.fileConfig(file, **kwargs)
def test_config0_ok(self): def test_config0_ok(self):
# A simple config file which overrides the default settings. # A simple config file which overrides the default settings.
...@@ -870,6 +891,15 @@ class ConfigFileTest(BaseTest): ...@@ -870,6 +891,15 @@ class ConfigFileTest(BaseTest):
# Original logger output is empty. # Original logger output is empty.
self.assert_log_lines([]) self.assert_log_lines([])
def test_logger_disabling(self):
self.apply_config(self.disable_test)
logger = logging.getLogger('foo')
self.assertFalse(logger.disabled)
self.apply_config(self.disable_test)
self.assertTrue(logger.disabled)
self.apply_config(self.disable_test, disable_existing_loggers=False)
self.assertFalse(logger.disabled)
class LogRecordStreamHandler(StreamRequestHandler): class LogRecordStreamHandler(StreamRequestHandler):
"""Handler for a streaming logging request. It saves the log message in the """Handler for a streaming logging request. It saves the log message in the
......
...@@ -233,6 +233,9 @@ Core and Builtins ...@@ -233,6 +233,9 @@ Core and Builtins
Library Library
------- -------
- Issue #17521: Corrected non-enabling of logger following two calls to
fileConfig().
- Issue #17508: Corrected MemoryHandler configuration in dictConfig() where - Issue #17508: Corrected MemoryHandler configuration in dictConfig() where
the target handler wasn't configured first. the target handler wasn't configured first.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment