Flask restful - 异常处理回溯?

Flask restful - Exception handling traceback?

我正在使用 Flask Restful 构建一个 API。我有许多模型 classes 的方法可能会引发自定义异常(例如:我的用户模型 class 上的 AuthFailed 异常)。我正在使用记录在 here 中的自定义错误处理来处理此问题(以便在身份验证失败时发送适当的响应)。到目前为止,一切都很好。但是,我注意到当引发异常时,尽管发回了正确的响应 JSON 和状态,但我仍然得到一个不理想的回溯。通常,如果我使用 try-except 块处理错误(在 flask 之外),except 可以捕获错误并处理它(防止回溯)。那么这里正确的方法是什么?我是不是误解了如何使用错误功能?

不幸的是,Flask-RESTful API errors 功能的处理方式 "by design"。 记录抛出的异常并返回 errors dict 中定义的相应响应。

但是,您可以通过修改 Flask 的记录器的日志级别来更改日志输出的级别,如下所示:

app = Flask(__name__)
app.logger.setLevel(logging.CRITICAL)

我认为您实际上必须将其设置为 CRITICAL,因为据我所知,即使在日志级别 ERROR 上,这些错误仍会被记录。

此外,Flask 和 Flask-RESTful 都是开源的。话虽如此,在查看代码后我发现 the function of a Flask app that is responsible for adding the exception traceback to the log(Flask 版本 0.11.1)。 当然,您可以创建自己的 App class(扩展 Flask 的原始 class),它会覆盖此方法(或其调用者)并执行其他操作。但是,如果您使用像这样的未记录的东西,则在更新 Flask 版本时应该小心。