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

Skip to content

Commit 9b862b9

Browse files
committed
Issue #17521: Merged fix from 3.2.
2 parents e29dd24 + 68b4cc8 commit 9b862b9

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
@@ -172,8 +172,8 @@ def _handle_existing_loggers(existing, child_loggers, disable_existing):
172172
logger.level = logging.NOTSET
173173
logger.handlers = []
174174
logger.propagate = True
175-
elif disable_existing:
176-
logger.disabled = True
175+
else:
176+
logger.disabled = disable_existing
177177

178178
def _install_loggers(cp, handlers, disable_existing):
179179
"""Create and install loggers"""

Lib/test/test_logging.py

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1257,9 +1257,30 @@ class ConfigFileTest(BaseTest):
12571257
datefmt=
12581258
"""
12591259

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

12641285
def test_config0_ok(self):
12651286
# A simple config file which overrides the default settings.
@@ -1363,6 +1384,15 @@ def test_config7_ok(self):
13631384
# Original logger output is empty.
13641385
self.assert_log_lines([])
13651386

1387+
def test_logger_disabling(self):
1388+
self.apply_config(self.disable_test)
1389+
logger = logging.getLogger('foo')
1390+
self.assertFalse(logger.disabled)
1391+
self.apply_config(self.disable_test)
1392+
self.assertTrue(logger.disabled)
1393+
self.apply_config(self.disable_test, disable_existing_loggers=False)
1394+
self.assertFalse(logger.disabled)
1395+
13661396

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

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,9 @@ Core and Builtins
196196
Library
197197
-------
198198

199+
- Issue #17521: Corrected non-enabling of logger following two calls to
200+
fileConfig().
201+
199202
- Issue #17508: Corrected MemoryHandler configuration in dictConfig() where
200203
the target handler wasn't configured first.
201204

0 commit comments

Comments
 (0)