Exception report library
Ian Bicking
ianb at colorstudy.com
Fri Jan 7 16:52:27 EST 2005
Robert Brewer wrote:
>>I've been using one of several systems to catch unexpected exceptions
>>and log them (e.g., write to a file, display on web page, email me,
>>etc). But many are built into a particular system, or have an
>>interesting but incomplete set of features. E.g., many web
>>frameworks have exception reporters (and the stdlib includes cgitb),
>>but I want to handle non-web exceptions in the same way as exceptions
>>from web requests, and that's not generally easy.
>
> ...
>
>>I feel like there must be something out there, since every Python
>>programmer has to deal with this sort of thing to some degree...?
>
>
> I feel that way, too, but haven't found it. I broke my webapp framework
> out of my ORM late last year, and quickly realized how small the core
> framework really is (22k, versus 250k for the web bits). Features like
> the logging handler could be provided as separate modules, rather than
> built into the Application object, and I've been meaning to get around
> to that. If we could put our many heads together, I think this would be
> doable for the stdlib.
I'm not optimistic about a good exception handler in the standard
library; development slows down a lot at that point, and it's not a
reasonable candidate until it is designed and used (in part because of
that slowdown -- if it's not mature, it is a diservice to the project to
calcify the interface with such strong backward compatibility
requirements). But anyway, hopefully multiple
people/frameworks/projects could use such a library, done well, as a start.
> Here are the pieces of the framework, by the way, which might also
> benefit from some standardization (I was thinking about them all at
> once):
>
> 1. Thread-safe application state
> 2. Logging (+ exception handling)
> 3. Configuration data (reading from various sources)
> 4. Registry of Workers for getting things done on a schedule,
> possibly recurring
> 5. Registry of startup/shutdown functions
> 6. Registry of active user interfaces
>
> I think the first three are all good candidates for a standard. If we
> had a standard, thread-safe Application object, the rest could be
> registerable plugins for that. You'd basically register callbacks for
> app.startup and .shutdown methods to iterate over.
Hmm... I'm confused by these bits. Are you talking about libraries for
other parts of a web framework, besides exception handling? If so, you
might want to look into WSGI and then discuss these things on the
web-sig list (WSGI as a starting point; it doesn't specifically relate
to many of these ideas, but provides a context in which to develop
them). Some of these have been discussed there, like logging,
configuration, and perhaps aspects of the registration you are thinking
about.
--
Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
More information about the Python-list
mailing list