Flask restful - 异常处理回溯?

时间:2016-10-17 03:19:43

标签: python flask flask-restful

我正在使用Flask Restful来构建API。我有许多模型类,其中的方法可能会引发自定义异常(例如:我的User模型类上的AuthFailed异常)。我正在使用自定义错误处理(记录为here)来处理此问题(以便在auth失败时,发送相应的响应)。到现在为止还挺好。但是,我注意到虽然提出了正确的响应JSON和状态,但是当引发异常时,我仍然得到一个不理想的回溯。通常,如果我使用try-except块处理错误(烧瓶外),则except可以捕获错误并处理它(防止回溯)。那么这里的正确方法是什么?我误解了如何使用错误功能吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,它以这种方式处理"设计" Flask-RESTful API errors功能。 记录抛出的异常并返回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类(扩展Flask的原始类),该类会覆盖此方法(或其调用者)并执行其他操作。但是,如果您使用此类未记录的内容,则在更新Flask版本时应该小心。