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

时间:2019-01-08 13:07:00

标签: ruby-on-rails rack

应用程序通过设置在“ 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错误(包括带有'A=0字符串的google ),这反过来又会产生大量的噪音污染通知。 (阻止ip毫无意义,我们刚刚观察到一连串的探针,它们具有来自12个不同ip地址的相同字符串...)

启用i18n并将语言环境添加到URL的偶然后果是,所有这些错误都是同一类型some_darned_string "is not a valid locale"。就性能损失而言,处理404错误是可以接受的,而相对于将坏演员留在黑暗中是可以接受的。

但是问题是,当邮件的内容包含字符串is not a valid locale时,我们如何有条件地过滤ExceptionNotification :: Rack以不发送邮件。

1 个答案:

答案 0 :(得分:1)

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

请参见Ignore Exceptions

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