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

Bin*_*hen 3 python error-logging

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

我可以将这样的运行时错误重定向到日志文件吗?

Joh*_*web 5

看起来你在问两个问题.

为了防止您的过程,从退出的错误,你需要捕捉所有exception正在使用升起式S 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)
Run Code Online (Sandbox Code Playgroud)

这慷慨地发出:

% cat warning.log
WARNING:root:The following error occurred, yet I shall carry on regardless: integer division or modulo by zero
Run Code Online (Sandbox Code Playgroud)

  • 还有logging.exception(msg),它查看异常上下文并自动添加回溯. (2认同)