Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8ec95b8

Browse files
committed
Closes #17521: Merged fix from 3.3.
2 parents 42fb352 + 9b862b9 commit 8ec95b8

3 files changed

Lines changed: 37 additions & 4 deletions

File tree

Lib/logging/config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ def _handle_existing_loggers(existing, child_loggers, disable_existing):
175175
logger.level = logging.NOTSET
176176
logger.handlers = []
177177
logger.propagate = True
178-
elif disable_existing:
179-
logger.disabled = True
178+
else:
179+
logger.disabled = disable_existing
180180

181181
def _install_loggers(cp, handlers, disable_existing):
182182
"""Create and install loggers"""

Lib/test/test_logging.py

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1261,9 +1261,30 @@ class ConfigFileTest(BaseTest):
12611261
datefmt=
12621262
"""
12631263

1264-
def apply_config(self, conf):
1264+
disable_test = """
1265+
[loggers]
1266+
keys=root
1267+
1268+
[handlers]
1269+
keys=screen
1270+
1271+
[formatters]
1272+
keys=
1273+
1274+
[logger_root]
1275+
level=DEBUG
1276+
handlers=screen
1277+
1278+
[handler_screen]
1279+
level=DEBUG
1280+
class=StreamHandler
1281+
args=(sys.stdout,)
1282+
formatter=
1283+
"""
1284+
1285+
def apply_config(self, conf, **kwargs):
12651286
file = io.StringIO(textwrap.dedent(conf))
1266-
logging.config.fileConfig(file)
1287+
logging.config.fileConfig(file, **kwargs)
12671288

12681289
def test_config0_ok(self):
12691290
# A simple config file which overrides the default settings.
@@ -1385,6 +1406,15 @@ def test_config7_ok(self):
13851406
# Original logger output is empty.
13861407
self.assert_log_lines([])
13871408

1409+
def test_logger_disabling(self):
1410+
self.apply_config(self.disable_test)
1411+
logger = logging.getLogger('foo')
1412+
self.assertFalse(logger.disabled)
1413+
self.apply_config(self.disable_test)
1414+
self.assertTrue(logger.disabled)
1415+
self.apply_config(self.disable_test, disable_existing_loggers=False)
1416+
self.assertFalse(logger.disabled)
1417+
13881418

13891419
@unittest.skipUnless(threading, 'Threading required for this test.')
13901420
class SocketHandlerTest(BaseTest):

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,9 @@ Core and Builtins
294294
Library
295295
-------
296296

297+
- Issue #17521: Corrected non-enabling of logger following two calls to
298+
fileConfig().
299+
297300
- Issue #17508: Corrected MemoryHandler configuration in dictConfig() where
298301
the target handler wasn't configured first.
299302

0 commit comments

Comments
 (0)