假设我捕获异常,我想记录它。我怎么做?我在哪里指定将其记录到哪里?
答案 0 :(得分: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 $
而不是e
您可以使用traceback.print_exc()
来获取更详细的报告
答案 1 :(得分:0)
您可以使用追溯类。
像这样:traceback.print_exc(file = open(“errlog.txt”,“a”))
以下是一个示例(来自here):
#!/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中记录异常,请查看此主题。