在 rails 生产环境中过滤错误报告

Filtering error reports in rails production environment

应用程序通过电子邮件发出通知,如在 `environments/production.rb' 中的设置:

Rails.application.config.middleware.use ExceptionNotification::Rack,
  :email => {
    :email_prefix => "[error] -  ",
    :sender_address => %{"notifier" no-reply@domain.ws},
    :exception_recipients => %w{notifications@domain4.us}
  }

所有探测应用程序的不良行为者都会生成 404 错误(包括 google 和 'A=0string),这反过来会生成通知总的来说噪音污染。 (阻止 ips 没有意义,我们刚刚观察到来自 12 个不同 ip 地址的具有相同字符串的一系列探测...)

启用 i18n 并将语言环境添加到 URL 的意外副作用意味着所有这些错误都是同一类型 some_darned_string "is not a valid locale"。处理 404 错误在性能方面是可以接受的,相对于让不良行为者蒙在鼓里。

然而问题是,当邮件内容包含字符串 is not a valid locale.

时,我们如何有条件地过滤 ExceptionNotification::Rack 不发送邮件

您可以将自定义例外添加到忽略列表

Ignore Exceptions

还有一些有用的选项,例如 ignore_crawlersignore_if,可让您根据内容过滤异常