For debugging/logging purposes, I would like to write the full stack to a file (such as in this question). I can do this using traceback.format_stack()
. However, I would like it to look like the more verbose tracebacks that IPython
outputs, for example, formatting with IPython.core.ultratb.VerboseTB
.
It appears the classes and methods in IPython.core.ultratb
require information on exceptions, as they are designed for tracebacks. But I have no exception: I just want to display the stack in a verbose way.
How can I use the output methods of IPython.core.ultratb.VerboseTB
to format the stack such as reported by traceback.extract_stack()
or inspect.stack()
?
import IPython.core.ultratb
import sys
try:
1/0
except Exception as exc:
tb = IPython.core.ultratb.VerboseTB()
print(tb.text(*sys.exc_info()))
# --------------------------------------------------------------------------
# ZeroDivisionError Traceback (most recent call last)
# <ipython-input-8-725405cc4e58> in <module>()
# 1 try:
# ----> 2 1/0
# 3 except Exception as exc:
# 4 tb = IPython.core.ultratb.VerboseTB()
# 5 print(tb.text(*sys.exc_info()))
#
# ZeroDivisionError: division by zero
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With