summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2010-09-17 12:45:26 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2010-09-17 12:45:26 (GMT)
commitfb7b505d9f14b0c1144f7b8d004dc7b5a1552024 (patch)
treec08846344f9ce619d078c2760e7d6157f0026da1 /Doc
parent89e1ae22a4bde06688783b1056623fe6f071b94c (diff)
downloadcpython-fb7b505d9f14b0c1144f7b8d004dc7b5a1552024.zip
cpython-fb7b505d9f14b0c1144f7b8d004dc7b5a1552024.tar.gz
cpython-fb7b505d9f14b0c1144f7b8d004dc7b5a1552024.tar.bz2
Improved Filter documentation.
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/logging.rst16
1 files changed, 15 insertions, 1 deletions
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index ee1bc84..3427624 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -1479,6 +1479,8 @@ When this script is run, the output should look something like this::
The :class:`LoggerAdapter` class was not present in previous versions.
+.. _filters-contextual:
+
Using Filters to impart contextual information
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -2657,7 +2659,7 @@ Currently, the useful mapping keys in a :class:`LogRecord` are:
Filter Objects
--------------
-Filters can be used by :class:`Handler`\ s and :class:`Logger`\ s for
+:class:`Filter`\ s can be used by :class:`Handler`\ s and :class:`Logger`\ s for
more sophisticated filtering than is provided by levels. The base filter class
only allows events which are below a certain point in the logger hierarchy. For
example, a filter initialized with "A.B" will allow events logged by loggers
@@ -2685,6 +2687,18 @@ etc.) This means that events which have been generated by descendant loggers
will not be filtered by a logger's filter setting, unless the filter has also
been applied to those descendant loggers.
+Other uses for filters
+^^^^^^^^^^^^^^^^^^^^^^
+
+Although filters are used primarily to filter records based on more
+sophisticated criteria than levels, they get to see every record which is
+processed by the handler or logger they're attached to: this can be useful if
+you want to do things like counting how many records were processed by a
+particular logger or handler, or adding, changing or removing attributes in
+the LogRecord being processed. Obviously changing the LogRecord needs to be
+done with some care, but it does allow the injection of contextual information
+into logs (see :ref:`filters-contextual`).
+
.. _log-record:
LogRecord Objects