On Mar 17, 10:42 am, Pakal <chambon.pas...@gmail.com> wrote: > Hello > > I've just realized recently that sys.exc_info() didn't return a full > traceback for exception concerned : it actually only contains the > frame below the point of exception catching. > > That's very annoying to me, because I planned to log such tracebacks > withlogging.critical(*****, exc_info=True), and these partial > tracebacks, like the one below, are clearly unsufficient to determine > where the problem comes from. A whole traceback, from program entry > point to exception raising point, would be much better. > > 2010-03-17 09:28:59,184 - pims - CRITICAL - This is just a test to > ensure critical emails are properly sent > Traceback (most recent call last): > << HERE, lots of frames missing >> > File "test_common.py", line 34, in test_email_sending > os.open("qsdsdqsdsdqsd", "r") > TypeError: an integer is required > > Is there any workaround for this ? I've thought about a customlogging > formatter, which would take both the exc_info traceback AND its own > full backtrace, and to connect them together on their relevant part, > but it's awkward and error prone... why can't we just have all the > precious traceback info under the hand there (an additional attribute > might have pointed the precise frame in which the exception was > caught). > > Tanks for the attention, > Regards, > Pascal
Do you have a short script which demonstrates the problem? Some more context is needed. For example, if you have multiple threads of execution, the traceback will only go up to the top-level function in the thread. Regards, Vinay Sajip -- http://mail.python.org/mailman/listinfo/python-list