【问题标题】:How to ignore 404 exceptions in Rollbar?如何忽略 Rollbar 中的 404 异常?
【发布时间】:2020-02-18 10:33:00
【问题描述】:

我在 Django 1.11.9 应用程序 (Python 2.7) 中使用 Rollbar,我尝试将其配置为忽略 404 异常,但没有成功。

我检查了Rollbar docs for Python 并注意到我已经在使用配置'exception_level_filters': [(Http404, 'ignored')],它根本不起作用。所以首先我认为我使用的库引发了一种不同类型的异常 (Django REST Framework) 并尝试在 exception_level_filters 中添加它的 NotFound 异常,但是 (1) 它不起作用并且 (2)对于不使用此库的模块,也不会忽略 404 异常。所以我检查了我的视图,发现有一个自定义视图处理 404 错误,它只是使用 Django 日志记录方法在调试级别记录请求路径。我尝试通过使用级别调试从记录器处理程序中删除 Rollbar 来编辑日志记录设置,甚至删除了自定义视图中的日志记录,但是我仍然收到 Rollbars 的 404 错误。

我还尝试使用值为 re.compile('.*') 的 Rollbar 配置 ignorable_404_urls,希望它会忽略所有 URL,但效果不佳。

有没有人能够在 Django 应用程序中正确地做到这一点和/或看到我犯的任何错误?提前致谢!

编辑:pyrollbar 版本:0.14.0

【问题讨论】:

    标签: python django rollbar


    【解决方案1】:

    问题是 Django 日志记录模块将 404 错误转发到具有警告级别的 Rollbar。要修复它,我必须将以下配置添加到我的日志记录设置(loggers 键):

    'django.request': {
        'handlers': ['console', 'rollbar'],
        'level': 'ERROR',
        'propagate': False,
    },
    

    【讨论】:

      【解决方案2】:

      来自doc:

      此外,您可以使用键 'ignorable_404_urls' 来设置 可迭代的正则表达式模式,用于确定是否 404 异常应该基于完整的 url 路径被忽略 要求。例如,

      import re
      ROLLBAR = {
          'access_token': 'POST_SERVER_ITEM_ACCESS_TOKEN',
          'environment': 'development' if DEBUG else 'production',
          'branch': 'master',
          'root': '/absolute/path/to/code/root',
          'ignorable_404_urls': (
              re.compile('/index\.php'),
              re.compile('/foobar'),
          ),
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-13
        • 1970-01-01
        • 1970-01-01
        • 2014-01-05
        相关资源
        最近更新 更多