ExceptionLoggerプラグインを使ってみた
ExceptionLoggerという、運用中に発生した例外をDBに保存しておき、後でAjax画面で管理できるプラグインを使ってみました。
http://blog.masuidrive.jp/articles/2006/09/25/rails-rss-feeds-for-exception-logger
を参考にインストールします。
ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/exception_logger
してから、
でテーブルを作成。
僕の環境はRails1.6.1のRuby1.8.4なんですが、このままじゃエラーになって動きませんでした。
エラーをキャッチする部分でエラーが発生するもんで捕捉がめんどうでしたが、どうも
plugin/exception_logger/lib/exception_loggable.rb
の
render_optional_error_file status
が悪さをしているようで、こいつをコメントアウトしたら動きました。
そして/logged_exceptionsにアクセスすると管理画面にいけるわけですが、どうもこの管理画面は
productionモードでないとまともに動かないようです。developmentモードだと、挙動が不安定になって
意味不明でした。
なにはともあれ、自分の見てないところで発生する例外を全部チェックできるのはうれしいですなぁ。
-------2月18日追記-----------------------
デフォルトのまんまだと、アドレス打ち込むだけで誰でも管理画面に行けてしまいます。
READMEを見ると認証を使った方法が書かれていますが、login_engineを使っているならもっと
簡単にできると思います。
exception_logger/lib/logged_exceptions_controller.rb
で定義されてる全てのアクションに対し、認証フィルタをかけてやります。
class LoggedExceptionsController < ActionController::Base cattr_accessor :application_name layout nil before_filter :nin def nin #ユーザー認証 user = session[:user] if !user redirect_to '/404.html' return false end unless user.login=="root" redirect_to '/404.html' return false end end