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
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)
basicConfig()
root.log(level, msg, *args, **kwargs)
-def disable(level):
+def disable(level=CRITICAL):
"""
Disable all logging calls of severity 'level' and below.
"""
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',