Rails 0.9.x のときに Exception Notifier (エラーをメールで通知するやつ)が便利だなーと思っていて、最近の事情はどうなのかしらと思っていたら、やっぱり例によってプラグインになっていたのね。プラグイン形式は便利かも知れないけど、メンテナが…フォーク数が…という事態になりがちで、活発なのはいいことなんだけれど、Rails3がリリースされた今「デファクトスタンダード」が無いのも辛いなと思う今日この頃。
今回のプラグインには https://github.com/michallo/exception_notification こちらを採用させてもらいました。とりあえず rails の master から fork を辿って行って、一番新しいところにいたので、という安直な理由。でもしっかり動いてくれました。
ただ、いくつか躓くところがあったので付記。
いつものようにプラグインをインストールしたら、 config/application.rb に次のようなことを書かなければなりません。
config/application.rb:
# Configure ActionMailer
config.action_mailer.delivery_method = :sendmail
# Configure ExceptionNotifier
config.middleware.use "::ExceptionNotifier",
:email_prefix => "[KifuCometter] ",
:sender_address => %{"notifier" <notifier@kifu.hamanako-jp.com>},
:exception_recipients => %w{sandmark.m@gmail.com}
まず ActionMailer の delivery_method を :sendmail にしてやる必要があります。ボクが置かせてもらっている「お名前.com」の設定ではTLS接続は無理ぽっていうか公開リポジトリにユーザ名とパスワード書けるかボケェってなところで、そうでないにしろ OpenSSL::SSLError だか何だかが出て難しそうなご様子。
なので、 /usr/sbin/sendmail (-> /usr/sbin/sendmail.postfix) を直接叩くように。でも config.action_mailer の雛形が application.rb のどこを見渡してもなかったんだよねぇ…。 rails g mailer としなければ生成してくれないのかしら。
それから、 ExceptionNotifier は Rack のミドルウェアになっているそうなので、middleware.use としなければならないらしい。しかも、 ExceptionNotifier とリテラルで書くと「そんなん無いわー」と怒られてしまうので、文字列で "::ExceptionNotifier" としてやらなければならないらしい。なんだこのダーティハック。
ともあれこれで、無事サーバの production 環境からエラー通知が届くようになりました。ちょうど手頃なバグがあって助か…ったとか言ってる場合じゃないですよね。ちゃんとテスト書いて、テストしてからコミットしろって話で。さーせん。
そんなわけでした。
押してねっ→BlogPeople「趣味の世界」ブログランキング
0 件のコメント:
コメントを投稿