Fw: logging exceptions
----- Original Message ----- From: "Vinay Sajip" <vinay_sajip@red-dove.com> To: <python-dev@python.org> Cc: <jeremy@alum.mit.edu> Sent: Friday, February 20, 2004 12:25 AM Subject: Re: logging exceptions
Zope 2.7 is using the logging package internally as the implementation for its old zLOG API. We've run into one problem, probably caused by carelessness on our part.
zLOG allows you to pass exc_info to be logged, but logging only allows you to specify a flag saying whether the current exception should be logged. (I recall that this was discussed at length, but not why the current solution was reached.) There are several call sites that depend on this feature to capture an exception, try to recover gracefully or log a traceback if recovery is impossible. So we depend on this feature, but can't get it out of logging very easily.
We've come up with this as a work-around: ["Gross" workaround snipped]
I propose to make the following change: def _log(self, level, msg, args, exc_info=None): # ... if exc_info: if type(exc_info) != types.TupleType: exc_info = sys.exc_info() record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info) self.handle(record)
This should allow passing an exception tuple in the exc_info parameter - in which case, that's used instead of calling sys.exc_info(). It is a slight change to the semantics but I can't think of any (non-pathological) code which will break. Can anyone see any problems with this approach?
Regards,
Vinay
participants (1)
-
Vinay Sajip