logging and propagation

oj ojeeves at gmail.com
Wed Nov 21 12:52:16 CET 2007


On Nov 21, 11:48 am, Paul Rudin <paul.nos... at rudin.co.uk> wrote:
> oj <ojee... 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.

No, because I want message to propagate usually. There are only
specific instances when I don't want it to propagate.



More information about the Python-list mailing list