[Python-Dev] Re: PEP 282 comments (original) (raw)

Trent Mick trentm@ActiveState.com
Wed, 20 Mar 2002 14:02:39 -0800


[Jeremy Hylton wrote]

zLOG does have a nice feature for passing an exception info to a log call. I'd like to see this as a standard feature, e.g.

logger.info("A normal exception occurred", excinfo=sys.excinfo()) The idea is the any of the log calls could also include a formatted traceback in the log.

Ideas I am batting around:

MarkH's and Guido's (doesn't allow controlling the level of the message): class Logger: def exception(self, msg, *args): # This is almost identical to error(), but sys.exc_info() is # called, and if available the exception details are appended to # msg. As sys.exc_info() is called, this is only useful in an # exception handler.

logger.exception("Like, Oh My God!")  # cannot log it at 'info' level

Jeremy's: class Logger: def info(self, level, msg, *args, **kwargs): # watch for 'exc_info' in kwargs

logger.info("Like, Oh My God!", exc_info=sys.exc_info())

Trent's: class Logger: def exception(self, msg, *args, **kwargs): # watch for 'level' in kwargs

logger.exception("Like, Oh My God!", level=logging.INFO)

Which do you all prefer?

What's the current status of this PEP? I like the general outline of stuff, but it feels a little fuzzy. That is, it seems to present a high-level description and a bunch of options. I'd like to see the concrete APIs for all of the objects.

The current status is that I have been slowly working on it in private. I agree that the current PEP is fuzzy.

I'd also love to get at least a prototype implementation. It would be need to replace the zLOG in Zope3 with a new logging implementation that follows the PEP.

Last week (I think) Vinay Sajip posted on python-list that he had a prototype implementation of PEP 282. http://www.red-dove.com/python_logging.html I like what he has and I hope to work with him (merging with what implementation scraps I have) to build the eventual proposed patch for the PEP. I haven't told him this yet though. :) Vinay, what do you think?

Trent

-- Trent Mick TrentM@ActiveState.com