【问题标题】:How to redirect python runtime errors?如何重定向python运行时错误?
【发布时间】:2010-11-14 01:34:33
【问题描述】:

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

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

【问题讨论】:

标签: python error-logging


【解决方案1】:

您似乎在问两个问题。

为防止您的进程因错误而退出,您需要捕获使用try...except...finally 引发的所有exceptions。

您还希望将所有输​​出重定向到日志。令人高兴的是,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

【讨论】:

  • 还有 logging.exception(msg) 查看异常上下文并自动添加回溯。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 2010-12-29
    • 2018-05-10
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    相关资源
    最近更新 更多