From 4b8c6c405619f7624847a469304e0d1cea053f19 Mon Sep 17 00:00:00 2001 From: Tim Graham <timograham@gmail.com> Date: Wed, 22 Aug 2012 17:36:46 -0700 Subject: [PATCH] [1.4.x] Fixed #17069 -- Added log filter example to docs. Backport of e06189f7ceb48013b37b902588bea6750c989b14 from master. --- docs/topics/logging.txt | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/docs/topics/logging.txt b/docs/topics/logging.txt index 0426ae3d17..b682e2fccd 100644 --- a/docs/topics/logging.txt +++ b/docs/topics/logging.txt @@ -516,6 +516,35 @@ logging module. through the filter. Handling of that record will not proceed if the callback returns False. + For instance, to filter out :class:`~django.http.UnreadablePostError` + (raised when a user cancels an upload) from the admin emails, you would + create a filter function:: + + from django.http import UnreadablePostError + + def skip_unreadable_post(record): + if record.exc_info: + exc_type, exc_value = record.exc_info[:2] + if isinstance(exc_value, UnreadablePostError): + return False + return True + + and then add it to your logging config:: + + 'filters': { + 'skip_unreadable_posts': { + '()': 'django.utils.log.CallbackFilter', + 'callback': skip_unreadable_post, + } + }, + 'handlers': { + 'mail_admins': { + 'level': 'ERROR', + 'filters': ['skip_unreadable_posts'], + 'class': 'django.utils.log.AdminEmailHandler' + } + }, + .. class:: RequireDebugFalse() .. versionadded:: 1.4