很多时候需要将出错堆栈信息输出到日志文件中,方便程序崩溃时查找错误,Ptyhon中的traceback模块提供了把详细出错堆栈信息格式化成字符串返回的函数format_exc()。具体代码举例如下:
import traceback
import logging
class excep_class:
def __init__ (self):
pass
def except_fun (self):
a=12
b=0
print(a/b)
if __name__=="__main__":
logging.basicConfig(filename='log.log')
try:
excep_class.except_fun(excep_class)
except:
s=traceback.format_exc()
logging.error(s)
执行完成后日志文件内容如下:
ERROR:root:Traceback (most recent call last):
File "test2.py", line 17, in <module>
excep_class.except_fun(excep_class)
File "test2.py", line 12, in except_fun
print(a/b)
ZeroDivisionError: division by zero
以上代码在win7系统Python3.3下调试通过。