logging and propagation

Paul Rudin paul.nospam at rudin.co.uk
Wed Nov 21 06:48:47 EST 2007


oj <ojeeves at gmail.com> writes:

> Hi,
>
> I want to setup logging with two loggers:
>
> The child logger is used when something different needs to be done
> with the log record, and the log record will propagate and be logged
> by the root logger as usual.
>
> However, there are certain times when I don't want a log record to
> propagate from the child to the parent.
>
> I don't really want to add a filter to the root logger, as it should
> be up to the child whether the record propagates or not.
>
> I've tried setting the child to a lower level then the parent, but if
> a record is dealt with by the child, the parent deals with it anyway
> regardless of its own log level.
>
> Also, filters only apply particular handlers and do not affect
> propagation.
>
> Can anyone suggest a simple way to achieve this?
>
> Currently, the only thing I can think of, is overriding the
> callHandlers method in a custom Logger class.

Loggers have a "propagate" attribute. If you set this to False in the
child then you should get what you want I think.



More information about the Python-list mailing list