在Python中,如何将异常记录到文件中?
假设我捕获了一个异常(也就是程序出错了),我想把这个错误记录下来。我该怎么做呢?我应该在哪里指定把它记录到哪里呢?
2 个回答
0
你可以使用traceback这个类。
用法是这样的:traceback.print_exc(file=open("errlog.txt","a"))
这里有一个例子(来自这里):
#!/usr/bin/env python
import sys, traceback
def main():
l=[1,2,3,4]
print l[4]
if __name__=="__main__":
try:
main()
except:
print "Trigger Exception, traceback info forward to log file."
traceback.print_exc(file=open("errlog.txt","a"))
sys.exit(1)
或者,如果你想在Django中记录异常,可以看看这个讨论。
4
virhilo tmp $ cat l.py
import logging
logging.basicConfig(filename='exceptions.log', level=logging.DEBUG)
try:
1/0
except ZeroDivisionError as e:
logging.debug(e)
virhilo tmp $ python2 l.py
virhilo tmp $ cat exceptions.log
DEBUG:root:integer division or modulo by zero
virhilo tmp $
你可以用 traceback.print_exc()
来代替 e
,这样可以得到更详细的错误报告。