如何阻止路由错误错误导致各种警告?

问题描述 投票:0回答:3

我在 Heroku 上的 Rails 4 应用程序(目前在 unicorn 上)通常不会有太多错误,但会收到大量错误的 URL。每当输入错误的 URL 时,用户都会看到我的 404 页面,并且 Rails 中会引发 ActionController::RoutingError 。这会被报告给 Rollbar 和 NewRelic 作为错误,并且他们会发出警报。我不断收到来自 NewRelic 的关于所有这些“错误”的警报。如何防止将路由错误报告为错误?

(我尝试将 newrelic.yml 中的一行更改为

ignore_errors: ActionController::RoutingError
但没有帮助。)

ruby-on-rails ruby-on-rails-4 heroku error-handling newrelic
3个回答
8
投票

由于另一个答案负责 New Relic,Rollbar 中的解决方案是将以下行添加到 config/initializers/rollbar.rb 中(有关更多信息,请参阅该文件中的注释):

config.exception_level_filters.merge!('ActionController::RoutingError' => 'ignore')

1
投票

如果您使用服务器端配置(在 New Relic 中应用程序的“设置”页面上确定),请确保

ActionController::RoutingError
包含在
Ignore these errors
字段中。

您也可以尝试在 Heroku 上设置一个环境变量来忽略此类错误。 例如,

NEW_RELIC_ERROR_COLLECTOR_IGNORE_ERRORS="ActiveRecord::RecordNotFound, ActionController::RoutingError"


0
投票

即使

Rollbar
推荐通过
ActionController::RoutingError
路线处理
match '*unmatched'
,这仍然无法消除最终出现在Rollbar中的内部Rails警告。

要抑制警告,您可以将其添加到 Rollbar 配置中:

/config/rollbar.rb

Rollbar.configure do |config|
  # ...

  config.exception_level_filters['ActionController::RoutingError'] = 'ignore'
end

另一种选择是在 Rails 处理请求之前添加一个中间件来约束请求。

© www.soinside.com 2019 - 2024. All rights reserved.