如何重定向Python运行时错误?

3 投票
2 回答
3274 浏览
提问于 2025-04-16 07:02

我正在用Python写一个后台服务,有时候会出现Python运行时错误,比如某个变量的类型不对。这种错误不会导致程序退出。

我能把这种运行时错误记录到一个日志文件里吗?

2 个回答

2

看看 traceback 这个模块。如果你遇到 RuntimeError 这种错误,你可以把它记录到日志里(可以参考一下 logging 这个模块)。

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

撰写回答