我正在使用python编写一个守护进程服务器,有时会出现python运行时错误,例如某些变量类型不正确。该错误不会导致进程退出。
我是否可以将此类运行时错误重定向到日志文件?
答案 0 :(得分:5)
看起来你问了两个问题。
要防止您的进程退出错误,您需要捕获使用exception
引发的所有try...except...finally
。
您还希望将所有输出重定向到日志。令人高兴的是,Python为您提供了一个全面的logging
模块。
一个例子,为你的喜悦和愉悦:
#!/usr/bin/env python
import logging
logging.basicConfig(filename='warning.log', level=logging.WARNING)
try:
1/0
except ZeroDivisionError, e:
logging.warning('The following error occurred, yet I shall carry on regardless: %s', e)
这慷慨地发出:
% cat warning.log
WARNING:root:The following error occurred, yet I shall carry on regardless: integer division or modulo by zero
答案 1 :(得分:2)
查看traceback
模块。如果您捕获RuntimeError
,则可以将其写入日志(请查看logging
模块)。