如何在Python中缩进堆栈跟踪?
我用这段代码来捕捉一个异常,并打印出堆栈跟踪信息:
def logerr(stmt, e):
try:
do_something()
except:
print('##EXCEPTION in logging: ')
exc_type, exc_value, exc_traceback = sys.exc_info()
traceback.print_exception(exc_type, exc_value, exc_traceback, file=sys.stdout)
我得到的结果是这样的:
##EXCEPTION in logging:
Traceback (most recent call last):
File "C:\Users\amurty\Desktop\dev\eclipse\workspace\hhs\FeedSearch\src\main\main.py", line 18, in main
log()
TypeError: log() takes exactly 1 argument (0 given)
但是我想让堆栈跟踪信息多一些缩进,像这样:
##EXCEPTION in logging:
Traceback (most recent call last):
File "C:\Users\amurty\Desktop\dev\eclipse\workspace\hhs\FeedSearch\src\main\main.py", line 18, in main
log()
TypeError: log() takes exactly 1 argument (0 given)
我该怎么做呢?使用 pprint
或者 textwrap
这两个模块能帮上忙吗?
1 个回答
3
试试这个:
import traceback
def logerr(stmt, e):
try:
##do something
except:
print '##EXCEPTION in logging: '
for line in traceback.format_exception().splitlines():
print ' ' + line