如何记录后台Python脚本的输出以防未捕获异常
我有一个在后台运行的Python脚本,我想把所有的错误和输出记录到一个日志文件里。
我知道可以用日志模块和try.. catch..
来记录错误,但如果我漏掉了一些错误,有没有办法也把这些错误记录下来呢?
2 个回答
0
你可以把 sys.stdout
和 sys.stderr
重新指向文件句柄。这样的话,如果在你的 Python 程序中遇到没有被捕获的错误,程序结束后这些文件句柄仍然可以使用。你可以这样做:
import sys
sys.stdout = open('myOut.txt', 'w')
sys.stderr = open('myErr.txt', 'w')
2
通常的做法是在最顶层的调用(也就是主函数)使用一个try/except Exception。这样做几乎可以确保你不会漏掉任何异常情况。Exception可以捕捉到所有未处理的异常,所以它的范围很广。