3

我正在使用 python 编写守护程序服务器,有时会出现 python 运行时错误,例如某些变量类型不正确。该错误不会导致进程退出。

我可以将此类运行时错误重定向到日志文件吗?

4

2 回答 2

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
于 2010-11-14T03:09:36.917 回答
2

traceback模块。如果您捕获到RuntimeError,您可以将其写入日志(查看该logging模块)。

于 2010-11-14T01:37:14.050 回答