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