[Python-checkins] cpython (merge 3.4 -> default): Merged documentation update from 3.4.
vinay.sajip
python-checkins at python.org
Mon Jun 2 01:31:58 CEST 2014
http://hg.python.org/cpython/rev/110b95446ec2
changeset: 90958:110b95446ec2
parent: 90955:9df126ee7005
parent: 90957:e7ebf94629d2
user: Vinay Sajip <vinay_sajip at yahoo.co.uk>
date: Mon Jun 02 00:31:44 2014 +0100
summary:
Merged documentation update from 3.4.
files:
Doc/howto/logging.rst | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/Doc/howto/logging.rst b/Doc/howto/logging.rst
--- a/Doc/howto/logging.rst
+++ b/Doc/howto/logging.rst
@@ -1027,6 +1027,15 @@
so that if the logger's threshold is set above ``DEBUG``, the calls to
:func:`expensive_func1` and :func:`expensive_func2` are never made.
+.. note:: In some cases, :meth:`~Logger.isEnabledFor` can iself be more
+ expensive than you'd like (e.g. for deeply nested loggers where an explicit
+ level is only set high up in the logger hierarchy). In such cases (or if you
+ want to avoid calling a method in tight loops), you can cache the result of a
+ call to :meth:`~Logger.isEnabledFor` in a local or instance variable, and use
+ that instead of calling the method each time. Such a cached value would only
+ need to be recomputed when the logging configuration changes dynamically
+ while the application is running (which is not all that common).
+
There are other optimizations which can be made for specific applications which
need more precise control over what logging information is collected. Here's a
list of things you can do to avoid processing during logging which you don't
@@ -1036,6 +1045,12 @@
| What you don't want to collect | How to avoid collecting it |
+===============================================+========================================+
| Information about where calls were made from. | Set ``logging._srcfile`` to ``None``. |
+| | This avoids calling |
+| | :func:`sys._getframe`, which may help |
+| | to speed up your code in environments |
+| | like PyPy (which can't speed up code |
+| | that uses :func:`sys._getframe`), if |
+| | and when PyPy supports Python 3.x. |
+-----------------------------------------------+----------------------------------------+
| Threading information. | Set ``logging.logThreads`` to ``0``. |
+-----------------------------------------------+----------------------------------------+
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list