Confused about logger config from within Python (3)

Roy Smith roy at panix.com
Sun Dec 30 02:08:14 CET 2012


In article <mailman.1455.1356826759.29569.python-list at python.org>,
 Terry Reedy <tjreedy at udel.edu> wrote:

> On 12/29/2012 8:48 AM, Roy Smith wrote:
> > In article <50de7a0a$0$29967$c3e8da3$5496439d at news.astraweb.com>,
> >   Steven D'Aprano <steve+comp.lang.python at pearwood.info> wrote:
> >
> >> In Python 3.2 and 3.3, the message about no handlers is not printed,
> >> which is an interesting difference. (Somebody who knows more about the
> >> logging package than I do might be able to state why that difference.)
> >
> > I hope that means that http://bugs.python.org/issue994421 has finally
> > been fixed :-)
> 
> I added an update ;-).
> 
> If Vijay wanted the message to be a warning rather than an exception, 
> the warnings module and mechanism could have been used (once it was 
> available -- I am not sure when that was). But I think a default handler 
> is even better.

Having a default handler is clearly a good fix.

> I also hope you appreciate that Vijay has stuck with maintenance and 
> upgrade of the module for nearly a decade now.

Absolutely.

BTW, I recently discovered a truly awesome thing about logging and 
nosetests.  Apparently, nose attaches a hander to the root logger at 
debug level and buffers anything that gets sent there.  If a test fails, 
it prints anything that logger captured.  So, for example (intentionally 
breaking one of my tests):

-------------------- >> begin captured logging << --------------------
requests.packages.urllib3.connectionpool: INFO: Starting new HTTP 
connection (1): localhost.lic.songza.com
requests.packages.urllib3.connectionpool: DEBUG: "GET 
/foo:80/api/v2/?format=json ('HTTP/1.1',)" 404 None
--------------------- >> end captured logging << ---------------------

This rocks!



More information about the Python-list mailing list