From 68b4cc87cd75822552914fb59f5bf53fe6c28202 Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Sat, 23 Mar 2013 11:18:45 +0000 Subject: Issue #17521: Corrected non-enabling of logger following two calls to fileConfig(). --- Lib/logging/config.py | 4 ++-- Lib/test/test_logging.py | 34 ++++++++++++++++++++++++++++++++-- Misc/NEWS | 3 +++ 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/Lib/logging/config.py b/Lib/logging/config.py index 38b21e6..560ca37 100644 --- a/Lib/logging/config.py +++ b/Lib/logging/config.py @@ -175,8 +175,8 @@ def _handle_existing_loggers(existing, child_loggers, disable_existing): logger.level = logging.NOTSET logger.handlers = [] logger.propagate = True - elif disable_existing: - logger.disabled = True + else: + logger.disabled = disable_existing def _install_loggers(cp, handlers, disable_existing): """Create and install loggers""" diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index bbd4852..d11b938 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -764,9 +764,30 @@ class ConfigFileTest(BaseTest): 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)) - logging.config.fileConfig(file) + logging.config.fileConfig(file, **kwargs) def test_config0_ok(self): # A simple config file which overrides the default settings. @@ -870,6 +891,15 @@ class ConfigFileTest(BaseTest): # Original logger output is empty. 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): """Handler for a streaming logging request. It saves the log message in the diff --git a/Misc/NEWS b/Misc/NEWS index 0bc8d0f..6a36c3a 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -233,6 +233,9 @@ Core and Builtins Library ------- +- Issue #17521: Corrected non-enabling of logger following two calls to + fileConfig(). + - Issue #17508: Corrected MemoryHandler configuration in dictConfig() where the target handler wasn't configured first. -- cgit v0.12