diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst index 6098878c1a1..d03cc50d87c 100644 --- a/Doc/library/logging.rst +++ b/Doc/library/logging.rst @@ -1023,7 +1023,7 @@ functions. handlers being added multiple times to the root logger, which can in turn lead to multiple messages for the same event. -.. function:: disable(lvl) +.. function:: disable(lvl=CRITICAL) Provides an overriding level *lvl* for all loggers which takes precedence over the logger's own level. When the need arises to temporarily throttle logging @@ -1036,6 +1036,14 @@ functions. overriding level, so that logging output again depends on the effective levels of individual loggers. + Note that if you have defined any custom logging level higher than + ``CRITICAL`` (this is not recommended), you won't be able to rely on the + default value for the *lvl* parameter, but will have to explicitly supply a + suitable value. + + .. versionchanged:: 3.7 + The *lvl* parameter was defaulted to level ``CRITICAL``. See Issue + #28524 for more information about this change. .. function:: addLevelName(lvl, levelName) diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index 2590d6528f6..d886d35c12c 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -1889,7 +1889,7 @@ def log(level, msg, *args, **kwargs): basicConfig() root.log(level, msg, *args, **kwargs) -def disable(level): +def disable(level=CRITICAL): """ Disable all logging calls of severity 'level' and below. """ diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 08cdd7f3ebd..7c5d1fd63cb 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -3473,6 +3473,11 @@ class ModuleLevelMiscTest(BaseTest): logging.disable(83) self.assertEqual(logging.root.manager.disable, 83) + # test the default value introduced in 3.7 + # (Issue #28524) + logging.disable() + self.assertEqual(logging.root.manager.disable, logging.CRITICAL) + def _test_log(self, method, level=None): called = [] support.patch(self, logging, 'basicConfig',