在Python中将异常保存到文件

18 投票
1 回答
23246 浏览
提问于 2025-04-15 15:54

我想把所有出现的错误信息保存到一个文件里。这样做的原因是,在Ubuntu上使用Python 3.1.1的IDLE时,调用提示信息时会出现错误,但它关闭得太快,让我根本来不及看清楚。另外,我也需要这个功能来进行测试。最理想的情况是,我只需要调用一个函数,就能把所有的错误信息保存到文件里。谢谢!;)

// 编辑:

我一开始是想找一个更通用的方法!这样就不需要把整个代码放在一个函数里或者缩进里面。不过现在这个方法对我来说效果很好。尽管如此,如果你能找到其他方法,我还是会很感激的!

谢谢!

1 个回答

39

如果你有一个方便的 main() 函数(不管它叫什么),那么你可以使用日志模块

import logging

def main():
    raise Exception("Hey!")

logging.basicConfig(level=logging.DEBUG, filename='/tmp/myapp.log')

try:
    main()
except:
    logging.exception("Oops:")

logging.exception 可以方便地获取当前的异常信息,并把详细内容记录到日志里:

ERROR:root:Oops:
Traceback (most recent call last):
  File "C:\foo\foo.py", line 9, in <module>
    main()
  File "C:\foo\foo.py", line 4, in main
    raise Exception("Hey!")
Exception: Hey!

撰写回答