Skip to content

Commit 6e3ca64

Browse files
timofurrervsajip
authored andcommitted
bpo-33606: improve logging performance when logger is disabled (GH-7285)
A check has been added in Logger.isEnabledFor() to return False when the logger is disabled. This avoids unnecessary work being done when a disabled logger is used.
1 parent 9e24930 commit 6e3ca64

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

Lib/logging/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1569,6 +1569,9 @@ def isEnabledFor(self, level):
15691569
"""
15701570
Is this logger enabled for level 'level'?
15711571
"""
1572+
if self.disabled:
1573+
return False
1574+
15721575
try:
15731576
return self._cache[level]
15741577
except KeyError:

Lib/test/test_logging.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4097,6 +4097,18 @@ def test_is_enabled_for(self):
40974097
self.addCleanup(setattr, self.logger.manager, 'disable', old_disable)
40984098
self.assertFalse(self.logger.isEnabledFor(22))
40994099

4100+
def test_is_enabled_for_disabled_logger(self):
4101+
old_disabled = self.logger.disabled
4102+
old_disable = self.logger.manager.disable
4103+
4104+
self.logger.disabled = True
4105+
self.logger.manager.disable = 21
4106+
4107+
self.addCleanup(setattr, self.logger, 'disabled', old_disabled)
4108+
self.addCleanup(setattr, self.logger.manager, 'disable', old_disable)
4109+
4110+
self.assertFalse(self.logger.isEnabledFor(22))
4111+
41004112
def test_root_logger_aliases(self):
41014113
root = logging.getLogger()
41024114
self.assertIs(root, logging.root)

0 commit comments

Comments
 (0)