【问题标题】:Can't adapt the airbrake gem to a Sinatra app无法使 airbrake gem 适应 Sinatra 应用程序
【发布时间】:2013-01-10 05:26:30
【问题描述】:
我正在像这样使用 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..
【问题讨论】:
标签:
ruby
rubygems
sinatra
airbrake
【解决方案1】:
@matt 的回答应该很好用,但是如果您想在设置中间件时在 rackup 文件中而不是在 Sinatra 应用程序中执行此操作,您可以这样做:
use Airbrake::Rack if ENV['RACK_ENV'] == "production"
我经常用中间件来做这件事。
【解决方案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
...