web-dev-qa-db-ja.com

例外通知ジェムとRails 3

これを起動して実行しようとしていますが、サーバーを起動すると常に「初期化されていない定数ExceptionNotifier」が表示されます。

http://github.com/Rails/exception_notification

私のGemfileには

gem "exception_notification"、:git => " http://github.com/Rails/exception_notification.git "、:branch => "master"

Github readmeに示されているように、config/application.rb、config/environment.rb、config.ru内に構成を配置してみました。 「Whatever」を自分のアプリケーション名に置き換えました。

41
Darren Hinderer

以前のすべての回答は古くなっています。これを単にgemfileに追加するだけです。

gem 'exception_notification', :require => 'exception_notifier'

そして、readmeに示されているように、production.rb設定ファイルを編集します。

config.middleware.use ExceptionNotifier,
  :email_prefix => "[Exception] ",
  :sender_address => %{"Exception Notifier" <[email protected]>},
  :exception_recipients => %w{[email protected]}
57
Jan M

公式gemの最新バージョンはRails 3で動作します。ここで見つけることができます: https://github.com/smartinez87/exception_notification

次のgemリリースでは:require => 'exception_notifier'オプションは不要です。

21

さて、私のために今それが働いています:

# Gemfile
gem "exception_notification", :git => "git://github.com/Rails/exception_notification", :require => 'exception_notifier'

# application.rb, inside the config block
config.middleware.use ::ExceptionNotifier,
  :email_prefix => "ApplicationName-Errors: ",
  :sender_address => %w{[email protected]},
  :exception_recipients => %w{[email protected]}
13

愚かなことはしない

In gemfile

gem 'exception_notification', :require => 'exception_notifier'

に application.rbファイル

  config.middleware.use ExceptionNotifier,
 :email_prefix => "[ERROR] ",
 :sender_address => %{"Exception Notifier" <[email protected]>},
 :exception_recipients => %w{[email protected]}

あなたはできました..:*

10
Saqib R.

Rails 3はこのプラグインをgemの形式で使用できません。ラックアプリをgemからロードできない可能性がありますか?代わりにプラグインとしてインストールし、構成構文を次のように変更しました:

config.middleware.use ":: ExceptionNotifier"

の代わりに

config.middleware.use ExceptionNotifier

4
Darren Hinderer

GitHubの公式リポジトリは次のとおりです: https://github.com/smartinez87/exception_notification

Gemfile内

gem "exception_notification", :require => 'exception_notifier', :git => "https://github.com/smartinez87/exception_notification.git"

Config\initializers\exception_notification.rb

Rails.application.config.middleware.use ExceptionNotifier,
  :email_prefix => "[Whatever] ",
  :sender_address => %{"notifier" <[email protected]>},
  :exception_recipients => %w{[email protected]}  
4
dave elkins

rescue_from Exception, with: :render_500 500テンプレート/ページの表示を処理するため、これだけでメールを送信しなくなりました

    config.middleware.use ExceptionNotifier,
  :email_prefix => "[some prefix] ",
  :sender_address => %{"Notifier" <[email protected]>},
  :exception_recipients => %w{[email protected]}

例外を処理するメソッドで手動で送信する必要があります

def render_500(exception)
    # email an error email if there's a 500 in production mode
    if Rails.env.production?
        ExceptionNotifier::Notifier.exception_notification(request.env, exception).deliver
    end
end 

したがって、環境に構成要素(production.rb)を配置し、アプリケーションコントローラーに例外処理コードを配置します。

3
Stone

実際、今では、はるかに簡単です。 Gemfileに次のように記述する必要があります。

gem "exception_notification", :git => "http://github.com/Rails/exception_notification.git", :require => 'exception_notifier'

そして、すべてを修正する必要があります。 :requireオプションは重要です(名前が異なるため、明示的に指定する必要があります)。以前に言及された他のすべてのパッチは、私は仮定してマージされました。

3
nathanvda

https://github.com/smartinez87/exception_notification

このgemはRails 3.x用に更新されており、3.0.7でテストしたところ、インストールがはるかに簡単になりました。

Gemfile:

gem 'exception_notification'

初期化子:

Rails.application.config.middleware.use ExceptionNotifier,
  :email_prefix => "[Whatever] ",
  :sender_address => %{"notifier" <[email protected]>},
  :exception_recipients => %w{[email protected]}
3
Brian Samson

私はそれをproduction.rbの以下で動作させることができました:

config.after_initialize do
 config.middleware.use ExceptionNotifier,
      :email_prefix => "[Whatever] ",
      :sender_address => %{"notifier" <[email protected]>},
      :exception_recipients => %w{[email protected]}
end
3
Chris Shepherd

少し作業は必要でしたが、Rails 3.0.0:

1- Rails plugin install http://github.com/sickill/exception_notification.git

(このフォークを使用したくない場合は、元のRailsプラグインに手動で his patch を手動で適用してください:3行のみです)。 undefined method controller_name error '

2- application.rb:

config.middleware.use "::ExceptionNotifier" , :email_prefix => "[Whatever] ",
                           :sender_address => %{"notifier" <[email protected]>},
                           :exception_recipients => %w{[email protected]} 

3-適用 ローレンスピットのパッチUPDATE:このリンクは壊れているようです)uninitialized constant ActiveRecord::RecordNotFoundエラーを修正します文書化 ここ

それでおしまい。

2

Rails 3.0.3を使用すると、これは私にとってはうまくいきます:

gem "exception_notification", :git => "https://github.com/sickill/exception_notification.git", :require => 'exception_notifier'

:gitパーツがインポートされるのは、 'undefined method controller_name error'を回避するためのパッチバージョンと、正しいlibを要求するための:requireだからです。

次に、私のproduction.rb環境ファイルにはこれしかありません(マニュアルから)

  config.middleware.use ExceptionNotifier,
    :email_prefix => "[MyApp] ",
    :sender_address => %{"notifier" <[email protected]>},
    :exception_recipients => %w{[email protected]}

これを機能させるにはさまざまな方法があるようですが、これは私のやり方でした。

乾杯!

2

私は今同じ問題を抱えていて、このように解決しました:

Gemfile

source 'http://rubygems.org'
gem 'exception_notification_Rails3', :require => 'exception_notifier'

application.rb

config.middleware.use ExceptionNotifier,
  :email_prefix => "[some prefix] ",
  :sender_address => %{"Notifier" <[email protected]>},
  :exception_recipients => %w{[email protected]}

Rails 2.3プロジェクトを3.0にリファクタリングしているので、新規インストールでこれを試していません。

編集:

ExceptionNotifierの初期化を、application.rbではなくconfig/initializers /の個別のイニシャライザファイルに入れる方が実際にはより良い(または「より正確」)かもしれません。

config/initializers/exception_notifier.rb

MyApp::Application.config.middleware.use ExceptionNotifier,
  :email_prefix => "[some prefix] ",
  :sender_address => %{"Notifier" <[email protected]>},
  :exception_recipients => %w{[email protected]}
2

これまで(2012-Aug-03)公式サイトは次のとおりです: https://github.com/smartinez87/exception_notification 、そしてREADMEによると、Rails3を完全にサポートしています。

ステップ1。 Gemfileを編集します。

gem 'exception_notification'

ステップ2。

Rails 3以降)ExceptionNotificationはラックミドルウェアとして使用されるため、config.ruファイルまたは実行する環境でオプションを構成できます。ほとんどの場合、本番環境で実行するためのExceptionNotification。

Whatever::Application.config.middleware.use ExceptionNotifier,
  :email_prefix => "[Whatever] ",
  :sender_address => %{"notifier" <[email protected]>},
  :exception_recipients => %w{[email protected]}

3/14現在の回答を更新...

ただ行う必要がありますgem exception_notificationをgemファイルに追加します。 「必要」はありません。

また、ドキュメントから直接変更された他の変更...

「4.xバージョン以降、構成構文が変更されました。すべての電子メール関連オプションは、:emailキーの下にネストする必要があります。」

そのようです...

Whatever::Application.config.middleware.use ExceptionNotification::Rack,
  :email => {
    :email_prefix => "[Whatever] ",
    :sender_address => %{"notifier" <[email protected]>},
    :exception_recipients => %w{[email protected]}
  }
1
bwest87

Rails 3.0.4を使用していますが、上記と同じ問題がありました。私のために働いた唯一の解決策は、Rails 3のexception_notificationのv1.2をプラグインとしてインストールすることでした(正しいブランチ/バージョンを使用していることを確認してください)。

Rails plugin install https://github.com/railsware/exception_notification.git

そして、誰もが言及しているコードをproduction.rbで使用してください:

config.middleware.use ExceptionNotifier,
  :email_prefix => "[some prefix] ",
  :sender_address => %{"Notifier" <[email protected]>},
  :exception_recipients => %w{[email protected]}

それは私にとってgemとしては確実に機能せず、readmeには「Exception Notifier Plugin for Rails」とあり、gemとしてのインストールについては何も言及されていません。

ハリー

1
harryhorn

Exception_notification設定を古いアプリから新しいアプリにコピーして貼り付けましたが、失敗しました。私をここに連れてきて、上記の答えはどれも最新のものではありませんでした。 4.xバージョン以降、ミドルウェアはExceptionNotification::Rack、ミドルウェア構成は次のようになります。

Whatever::Application.config.middleware.use ExceptionNotification::Rack,
 :email => {
   :email_prefix => "[Whatever] ",
   :sender_address => %{"notifier" <[email protected]>},
   :exception_recipients => %w{[email protected]}
 }
0
Casual Coder