[Python-ideas] Logging2 with default NullHandler

Paul Moore p.f.moore at gmail.com
Fri Mar 16 09:53:23 CET 2012


On 16 March 2012 08:33, anatoly techtonik <techtonik at gmail.com> wrote:
> "Don't let me think" is the greatest usability principle of all times,
> and logging module, unfortunately fails to comply. Backward
> compatibility won't let it to be fixed. And that's why a predictable
> logging2 module is needed.

Your original example was wrong:

>>> import logging
>>> log = logging.getLogger(__name__)
>>> log.warn("WARN")
WARNING:__main__:WARN
>>> log = logging.getLogger('a.b.c')
>>> log.warn("WARN")
WARNING:a.b.c:WARN

Logging reports to stderr by default. So if I don't think, I get any
output that code using logging thinks is worth drawing to my
attention. Having seen that, if I want to do something about it (i.e.
I think a *tiny* amount) I can set the log level to critical and
suppress anything else:

>>> log.setLevel(logging.CRITICAL)
>>> log.warn("WARN")

And if I prefer something more complex, I can do that. But by then,
I've reached the point where expecting me not to read the
documentation and think a little is unreasonable.

The examples above are in 2.7, btw. They also work in 3.2 and 3.3a0.

Paul.



More information about the Python-ideas mailing list