[Python-Dev] Redirecting warnings.showwarning to logging

Vinay Sajip vinay_sajip at yahoo.co.uk
Sat Nov 22 12:12:22 CET 2008

Brett Cannon has suggested [1] that the logging package should provide an
implementation of warnings.showwarning which redirects to logging. Here are my
first thoughts about how this might work:

A new function, showwarning( message, category, filename, lineno[, file]) will
be added to the logging package. To redirect all warnings to the logging system,
it will only be necessary to do the following:

warnings.showwarning = logging.showwarning

The implementation of logging.showwarning will call formatwarning(message,
category, filename, lineno) and will log the resulting string to a warnings
logger named "stdlib.warnings" (or perhaps "std.warnings") with level
logging.WARNING. The optional file argument to logging.showwarning is only for
signature compatibility with warnings.showwarning and will be ignored; in order
to configure logging of warnings to any particular destination, the logging
configuration will need to add appropriate handlers to the warnings logger. The
precise format of the logging message will be determined by the logging
configuration in effect, i.e. any formatters configured for the handlers
attached to the logger.

Does this sound like a reasonable approach? Can someone please suggest any
improvements, or let me know if I've missed anything?


Vinay Sajip

[1] http://bugs.python.org/issue4384

More information about the Python-Dev mailing list