Как настроить жемчуг Airbrake для регистрации всех исключений Rails в обеих средах разработки и производства?
Мне трудно отправить исключения из моего приложения Rails 3 через жемчуг Airbrake. Сначала я подумал, что с моей стороны возникла ошибка конфигурации Airbrake, но после проб и ошибок и чтения документации (https://github.com/thoughtbot/airbrake#readme) я обнаружил, что Airbrake не сообщает об ошибках когда приложение работает в среде разработки. Он сообщает об ошибках, когда приложение работает в рабочей среде.
Есть ли флаг для создания файла конфигурации Airbrake, который автоматически включает среду разработки в список сред, в которых уведомления не должны отправляться?
В настоящее время я выполняю команду, указанную в README
script/rails generate airbrake --api-key your_key_here
Ответы
Ответ 1
Непосредственная.
config.consider_all_requests_local = false
вместо
config.consider_all_requests_local = true
в config/environments/development.rb
. В моем случае, как я подозреваю во многих других, это было всего лишь временное изменение, поэтому я могу "проверить" Airbrake notify_airbrake
.
Вам нужно config.development_environments = []
в airbrake.rb
Ответ 2
Не знаете параметры конфигурации, но вы можете явно отправлять уведомления Airbrake с контроллера, используя
notify_airbrake(exception)
Итак, чтобы сделать это в процессе разработки, вы можете поймать все ошибки в вашем приложении_процессоре, отправить уведомление и обработать ошибки, как и раньше. Посмотрите 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