如何记录后台Python脚本的输出以防未捕获异常

0 投票
2 回答
1775 浏览
提问于 2025-04-17 05:04

我有一个在后台运行的Python脚本,我想把所有的错误和输出记录到一个日志文件里。

我知道可以用日志模块和try.. catch..来记录错误,但如果我漏掉了一些错误,有没有办法也把这些错误记录下来呢?

2 个回答

0

你可以把 sys.stdoutsys.stderr 重新指向文件句柄。这样的话,如果在你的 Python 程序中遇到没有被捕获的错误,程序结束后这些文件句柄仍然可以使用。你可以这样做:

import sys

sys.stdout = open('myOut.txt', 'w')
sys.stderr = open('myErr.txt', 'w')
2

通常的做法是在最顶层的调用(也就是主函数)使用一个try/except Exception。这样做几乎可以确保你不会漏掉任何异常情况。Exception可以捕捉到所有未处理的异常,所以它的范围很广。

撰写回答