Commit 6e3ca645 authored by Timo Furrer's avatar Timo Furrer Committed by Vinay Sajip

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.
parent 9e24930d
...@@ -1569,6 +1569,9 @@ class Logger(Filterer): ...@@ -1569,6 +1569,9 @@ class Logger(Filterer):
""" """
Is this logger enabled for level 'level'? Is this logger enabled for level 'level'?
""" """
if self.disabled:
return False
try: try:
return self._cache[level] return self._cache[level]
except KeyError: except KeyError:
......
...@@ -4097,6 +4097,18 @@ class LoggerTest(BaseTest): ...@@ -4097,6 +4097,18 @@ class LoggerTest(BaseTest):
self.addCleanup(setattr, self.logger.manager, 'disable', old_disable) self.addCleanup(setattr, self.logger.manager, 'disable', old_disable)
self.assertFalse(self.logger.isEnabledFor(22)) self.assertFalse(self.logger.isEnabledFor(22))
def test_is_enabled_for_disabled_logger(self):
old_disabled = self.logger.disabled
old_disable = self.logger.manager.disable
self.logger.disabled = True
self.logger.manager.disable = 21
self.addCleanup(setattr, self.logger, 'disabled', old_disabled)
self.addCleanup(setattr, self.logger.manager, 'disable', old_disable)
self.assertFalse(self.logger.isEnabledFor(22))
def test_root_logger_aliases(self): def test_root_logger_aliases(self):
root = logging.getLogger() root = logging.getLogger()
self.assertIs(root, logging.root) self.assertIs(root, logging.root)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment