10

Rails3アプリの例外をAirbrakegem経由で送信するのは難しいと感じました。最初は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。私の場合、他の多くの人と同じように、エアブレーキを「テスト」できるように一時的な変更にすぎませんでした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 に答える