10

我发现很难通过 Airbrake gem 发送我的 Rails 3 应用程序的异常。起初我以为是我的 Airbrake 配置错误,但经过反复试验并仔细阅读文档(https://github.com/thoughtbot/airbrake#readme)后,我发现 Airbrake 不报告错误当应用程序在开发环境中运行时。当应用程序在生产环境中运行时,它会报告错误。

是否有生成 Airbrake 配置文件的标志,该文件自动将开发环境包含在不应发送通知的环境列表中?

目前我正在执行 README 中列出的命令

script/rails generate airbrake --api-key your_key_here
4

2 回答 2

18

直截了当。

  config.consider_all_requests_local       = false

代替

  config.consider_all_requests_local       = true

在你的config/environments/development.rb. 就我而言,就像我在许多其他人中所怀疑的那样,这只是一个临时更改,因此我可以“测试” Airbrake 的notify_airbrake.

你确实需要config.development_environments = []airbrake.rb

于 2011-10-18T20:28:17.547 回答
14

不确定配置选项,但您可以使用从控制器显式向 Airbrake 发送通知

notify_airbrake(exception)

因此,要在开发中执行此操作,您可以在 application_controller 中捕获所有错误,发送通知,然后像以前一样处理错误。查看rescue_from以开始使用。这就是我这样做是为了从我的登台环境(或者,准确地说,是开发和测试以外的任何环境)获取通知的方式。

class ApplicationController < ActionController::Base

  rescue_from Exception, :with => :render_error

  private

  def render_error(exception)
    render :file => "#{Rails.root}/public/500.html", :layout => false, :status => 500
    logger.error(exception)
    notify_airbrake(exception) unless Rails.env.development? || Rails.env.test?
  end
end
于 2011-09-27T00:18:41.313 回答