Extracting the traceback

codesite-noreply billiejoex at gmail.com
Tue Aug 21 20:57:32 EDT 2007


On 22 Ago, 02:09, "Evan Klitzke" <e... at yelp.com> wrote:
> On 8/21/07, billiejoex <gne... at gmail.com> wrote:
>
>
>
> > Hi there,
> > I'm facing a case where I need to get the traceback outptut when
> > occurring an exception.
> > I solved such problem by using traceback module in conjunction with
> > StringIO:
>
> > import StringIO, traceback
> > try:
> >     raise Exception
> > except:
> >     f = StringIO.StringIO()
> >     traceback.print_exc(file=f)
> >     print f.getvalue()
>
> > ... but this seems a little poor to me since I first put output into
> > the StringIO.StringIO(), then I get it back by using getvalue() on
> > it.
> > Is there a way to avoid the use of StringIO and get such output
> > without using such (useless) additional step?
>
> If you just want to print the output (as in your example), you can use
> file=sys.stdout or file=sys.stderr in the call to print_exc. If you
> want to store the traceback into a string for some other purpose (e.g.
> logging, email notifications) I believe that you must use a StringIO
> object.
>
> --
> Evan Klitzke <e... at yelp.com>

Unfortunately I have to pass the output to a function which prints the
passed string both on screen and into a log file.
Anyway, not too much important. I'll use StringIO if there's no other
solution.

Thanks




More information about the Python-list mailing list