]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-92859: Doc: add info about logging.debug() calling basicConfig() (GH-93063)
authorNicolas Haller <nicolas@haller.im>
Mon, 23 May 2022 19:18:43 +0000 (15:18 -0400)
committerGitHub <noreply@github.com>
Mon, 23 May 2022 19:18:43 +0000 (20:18 +0100)
Doc/howto/logging.rst
Doc/library/logging.rst

index 4d76c27332ccd3a16111f035df37ef42bd4131f4..93400627136e359501853c2e54ee9682d4e48c83 100644 (file)
@@ -178,10 +178,11 @@ following example::
        raise ValueError('Invalid log level: %s' % loglevel)
    logging.basicConfig(level=numeric_level, ...)
 
-The call to :func:`basicConfig` should come *before* any calls to :func:`debug`,
-:func:`info` etc. As it's intended as a one-off simple configuration facility,
-only the first call will actually do anything: subsequent calls are effectively
-no-ops.
+The call to :func:`basicConfig` should come *before* any calls to
+:func:`debug`, :func:`info`, etc. Otherwise, those functions will call
+:func:`basicConfig` for you with the default options. As it's intended as a
+one-off simple configuration facility, only the first call will actually do
+anything: subsequent calls are effectively no-ops.
 
 If you run the above script several times, the messages from successive runs
 are appended to the file *example.log*. If you want each run to start afresh,
index b82b90b47dd16075a94d0a1e32e49fef5208d78c..3310c73656258f5323392be8f0338edc17f09dda 100644 (file)
@@ -242,6 +242,10 @@ is the module's name in the Python package namespace.
       above example). In such circumstances, it is likely that specialized
       :class:`Formatter`\ s would be used with particular :class:`Handler`\ s.
 
+      If no handler is attached to this logger (or any of its ancestors,
+      taking into account the relevant :attr:`Logger.propagate` attributes),
+      the message will be sent to the handler set on :attr:`lastResort`.
+
       .. versionchanged:: 3.2
          The *stack_info* parameter was added.
 
@@ -1038,6 +1042,10 @@ functions.
    above example). In such circumstances, it is likely that specialized
    :class:`Formatter`\ s would be used with particular :class:`Handler`\ s.
 
+   This function (as well as :func:`info`, :func:`warning`, :func:`error` and
+   :func:`critical`) will call :func:`basicConfig` if the root logger doesn't
+   have any handler attached.
+
    .. versionchanged:: 3.2
       The *stack_info* parameter was added.