Repeated output when logging exceptions

John Gordon gordon at
Mon Sep 28 22:38:49 CEST 2009

In <6bce12c3-f2d9-450c-89ee-afa4f21d50c8 at> Vinay Sajip <vinay_sajip at> writes:

> The logging package allows you to add tracebacks to your logs by using
> the exception() method, which logs an ERROR with a traceback and is
> specifically intended for use from within exception handlers. All that
> stuff with temporary files seems completely unnecessary, even with Python
> 2.3.

I didn't know about the exception() method.  Thanks!

> In general, avoid adding handlers more than once - which you are
> almost guaranteed to not avoid if you do this kind of processing in a
> constructor. If you write your applications without using the
> exceptionLogger class (not really needed, since logging exceptions
> with tracebacks is part and parcel of the logging package's
> functionality since its introduction with Python 2.3), what
> functionality do you lose?

I'm trying to encapsulate all the setup work that must be done before any
actual logging occurs: setting the debugging level, choosing the output
filename, declaring a format string, adding the handler, etc.

If I didn't do all that in a class, where would I do it?

John Gordon                   A is for Amy, who fell down the stairs
gordon at              B is for Basil, assaulted by bears
                                -- Edward Gorey, "The Gashlycrumb Tinies"

More information about the Python-list mailing list