gpt4 book ai didi

python - 如何确定 python 程序执行期间是否记录了任何错误?

转载 作者:行者123 更新时间:2023-12-02 03:26:39 25 4
gpt4 key购买 nike

我有一个 python 脚本,它在几个地方调用 log.error() 和 log.exception() 。捕获这些异常以便脚本可以继续运行,但是,我希望能够确定是否曾经调用过 log.error() 和/或 log.exception() ,以便我可以使用错误代码退出脚本通过调用 sys.exit(1)。下面包含使用“错误”变量的简单实现。在我看来,必须有更好的方法。

error = False

try:
...
except:
log.exception("Something bad occurred.")
error = True

if error:
sys.exit(1)

最佳答案

我遇到了与原始海报相同的问题:如果记录了任何错误或更严重的消息,我想退出我的 Python 脚本并显示错误代码。对于我的应用程序,只要不引发未处理的异常,就希望继续执行。但是,如果记录任何错误,持续集成构建应该会失败。

我找到了 errorhandler python 包,它正是我们所需要的。请参阅GitHub , PyPI page ,和docs .

下面是我使用的代码:

import logging
import sys

import errorhandler

# Track if message gets logged with severity of error or greater
error_handler = errorhandler.ErrorHandler()

# Also log to stderr
stream_handler = logging.StreamHandler(stream=sys.stderr)
logger = logging.getLogger()
logger.setLevel(logging.INFO) # Set whatever logging level for stderr
logger.addHandler(stream_handler)

# Do your program here

if error_handler.fired:
logger.critical('Failure: exiting with code 1 due to logged errors')
raise SystemExit(1)

关于python - 如何确定 python 程序执行期间是否记录了任何错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4926078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com