我发现很难通过Airbrake gem发送Rails 3应用程序的异常。起初我认为我的部分有一个Airbrake配置错误,但经过反复试验和阅读文档(https://github.com/thoughtbot/airbrake#readme)非常仔细,我发现当应用程序在开发环境中运行时,Airbrake不会报告错误。当应用在生产环境中运行时,它会报告错误。
是否有一个标志来生成一个Airbrake配置文件,该文件自动将开发环境包括在不应该发送通知的环境列表中?
当前我正在执行README
中列出的命令。script/rails generate airbrake --api-key your_key_here
直截了当。
config.consider_all_requests_local = false
不是 config.consider_all_requests_local = true
在您的config/environments/development.rb
。在我的情况下,就像我怀疑在许多其他人,这只是一个临时的变化,所以我可以"测试"空气制动的notify_airbrake
。
你需要config.development_environments = []
在空气制动器。rb
不确定配置选项,但您可以使用
从控制器显式地向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