On Fri, Jun 17, 2011 at 6:45 PM, Vinay Sajip <vinay_sa...@yahoo.co.uk> wrote:
> Matt Bennett <matt@...> writes:
>
>>
>> > This is a case for a custom Filter object [1]. The filter object
>> > implementation would only be a few lines, to reject logging when DEBUG
>> > is True, and can be attached to the admin email handler in the default
>> > logging configuration. [2] This way the logging call can occur in all
>> > code paths, and the admin email handler itself can remain
>> > general-purpose, but the backwards-compatible behavior can be maintained.
>> >
>> > Matt, if you'd be willing to open a ticket for this, that'd be helpful.
>> > If you feel like putting together a patch using the Filter approach,
>> > that'd be even better
>>
>> Here you are: https://code.djangoproject.com/ticket/16288
>>
>> Since logging Filters are not specific to an individual logger or
>> handler, I've just called it DebugFalseFilter. It's not a pretty name,
>> but I couldn't come up with anything better - I decided it should
>> convey what the filter allows through, but AFAIK there's no name for
>> "not debug mode".
>
> Reposting this, after Google swallowed my earlier response. Sorry if it
> eventually turns up, making this a double post ...
>
> A more general solution would be something like this:
>
> class ConditionFilter(logging.Filter):
>    def __init__(self, condition):
>        self.condition = condition
>
>    def filter(self, record):
>        return self.condition
>
> which you can then use in the logging configuration using something like
>
> 'require_debug_false': {
>    '()': 'django.utils.log.ConditionFilter',
>    'condition': not DEBUG,
> }
>
> This will allow the filter to be used in more places, e.g. you could use a 
> more
> complex settings-time condition.
>
> Regards,
>
> Vinay Sajip
>

+1. Perhaps the reason I don't like DebugFalseFilter as a name is that
it's so specific.

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to