如何忽略Sentry中的Flask http 400异常

时间:2018-11-14 12:13:08

标签: flask sentry

我已经在Sentry中设置了一个flask项目,但是注意到我需要修复的问题。

当前,如果flask应用程序抛出HTTPException(例如,针对验证异常),则该异常会在Sentry中引发问题。因为即使对于HTTP 400也会产生问题,这使问题变得混乱。

是否可以通过任何方式配置Sentry,使其忽略代码为4xx的所有HTTPException,但仍为代码为5xx的所有HTTPException创建问题?

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,Sentry应该只发送未处理的异常。因此,您可以设置自定义错误处理程序:http://flask.pocoo.org/docs/1.0/patterns/errorpages/?highlight=error%20handler#error-handlers

如果要处理所有默认异常,则可以注册这样的错误处理程序:

 from werkzeug.exceptions import default_exceptions

 def register_error_handlers(app):
    """ Register error handler for default exceptions """

    for code in default_exceptions:
        app.register_error_handler(code, your_error_handler)

其中app是烧瓶应用程序实例,而your_error_handler将错误作为参数并返回响应。因此,您可以在此for循环中过滤400个代码,以仅处理4xx错误。