diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index 46c590687c7..a3617b16c4d 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -1569,6 +1569,9 @@ class Logger(Filterer): """ Is this logger enabled for level 'level'? """ + if self.disabled: + return False + try: return self._cache[level] except KeyError: diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index eee2ed0c19e..e02bb31c339 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -4097,6 +4097,18 @@ class LoggerTest(BaseTest): self.addCleanup(setattr, self.logger.manager, 'disable', old_disable) 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): root = logging.getLogger() self.assertIs(root, logging.root)