无法使airbrake gem适应Sinatra应用程序

时间:2013-01-26 09:21:21

标签: ruby rubygems sinatra airbrake

我正在使用airbrake gem:

require 'airbrake'

Airbrake.configure do |config|
  config.api_key = 'XXXXX'
  config.development_environments = ["development", "test", "cucumber"]
end

use Airbrake::Rack
enable :raise_errors

但它仍在发展中发送空气制动通知。

我的环境保存在ENV['RACK_ENV']中。

我不想破解我的方式,是否有“外部”解决方案?

另外,我确实想在开发中引发异常 - 我只是不希望它们被发送到airbrake ..

2 个答案:

答案 0 :(得分:2)

您可以使用configure块仅在生产中设置Airbrake:

configure :production do
  require 'airbrake'

  Airbrake.configure do |config|
    config.api_key = 'XXXXX'
  end

  use Airbrake::Rack
end

如果您想要启用Airbrake的环境不止一个,您可以指定一个列表,例如:

configure :production, :staging do
  ...

答案 1 :(得分:1)

@ matt的答案应该可以正常运行,但是如果你想在设置中间件而不是在Sinatra应用程序内部的架构文件中这样做,你可以这样做:

use Airbrake::Rack if ENV['RACK_ENV'] == "production"

我经常使用中间件来做这件事。