From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 28 Sep 2022 04:32:01 +0000 (-0700) Subject: [3.11] gh-65046: Add note about logging from async code. (GH-97602) (GH-97608) X-Git-Tag: v3.11.1~432 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=73557d5bd2896d64a178ccf48dfb5a05c51d9853;p=thirdparty%2FPython%2Fcpython.git [3.11] gh-65046: Add note about logging from async code. (GH-97602) (GH-97608) --- diff --git a/Doc/howto/logging-cookbook.rst b/Doc/howto/logging-cookbook.rst index 16df3b730ac8..5b079744df12 100644 --- a/Doc/howto/logging-cookbook.rst +++ b/Doc/howto/logging-cookbook.rst @@ -397,6 +397,14 @@ which, when run, will produce: MainThread: Look out! +.. note:: Although the earlier discussion wasn't specifically talking about + async code, but rather about slow logging handlers, it should be noted that + when logging from async code, network and even file handlers could lead to + problems (blocking the event loop) because some logging is done from + :mod:`asyncio` internals. It might be best, if any async code is used in an + application, to use the above approach for logging, so that any blocking code + runs only in the ``QueueListener`` thread. + .. versionchanged:: 3.5 Prior to Python 3.5, the :class:`QueueListener` always passed every message received from the queue to every handler it was initialized with. (This was