summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2013-03-23 11:23:05 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2013-03-23 11:23:05 (GMT)
commit8ec95b81d53bcadc7bb8defebb5cdf73261823f9 (patch)
tree278d0006e56aa77f631c3daea49fcc01752293f5 /Lib
parent42fb352a987050eb042ca8b83d679752e02e1441 (diff)
parent9b862b9d6679ed0de6dfeba158b417d79d4d6ed1 (diff)
downloadcpython-8ec95b81d53bcadc7bb8defebb5cdf73261823f9.zip
cpython-8ec95b81d53bcadc7bb8defebb5cdf73261823f9.tar.gz
cpython-8ec95b81d53bcadc7bb8defebb5cdf73261823f9.tar.bz2
Closes #17521: Merged fix from 3.3.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/logging/config.py4
-rw-r--r--Lib/test/test_logging.py34
2 files changed, 34 insertions, 4 deletions
diff --git a/Lib/logging/config.py b/Lib/logging/config.py
index a65fd73..b0c0971 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 f2ae095..11e812d 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -1261,9 +1261,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.
@@ -1385,6 +1406,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)
+
@unittest.skipUnless(threading, 'Threading required for this test.')
class SocketHandlerTest(BaseTest):