No commit activity in last 3 years
No release in over 3 years
It's evolved from the outdated version 0.11.1 and built with rails engine and is mountable.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

>= 4.0.0
 Project Readme

Exception Logger for Rails 4¶ ↑

This gem is evolved from the outdated rails_exception_logger gem. I refined it with the mountable rails engine, making it convenient to mount to any existing rails app.

Install¶ ↑

Inside your Gemfile:

# Rails 4.1.x
gem "rails_exception_logger", :github => "pvijayror/rails_exception_logger"

and then run:

bundle install

Gem Dependencies¶ ↑

Please check if all those requirements are satisfied on your environment.

  • will_paginate >= 3.0.5 # (used for pagination)

  • rails >= 4.0.0

Inside your ApplicationController:¶ ↑

include RailsExceptionLogger::ExceptionLoggable # loades the module
rescue_from Exception, :with => :log_exception_handler # tells rails to forward the 'Exception' (you can change the type) to the handler of the module

Inside your config/routes.rb¶ ↑

mount RailsExceptionLogger::Engine => "/rails_exception_logger"

Database Setup¶ ↑

Use

rake rails_exception_logger:install:migrations

This will create a database migration

TIMESTAMP_create_rails_exception_logger_logged_exceptions.rails_exception_logger.rb

inside db/migrations

Then

rake db:migrate

Authentication¶ ↑

If you want, and believe me you want that, you can add the following lines to your environment to enable Authentication

Example uses the declarative_authorization gem

in config/environment/production.rb:

config.after_initialize do
  RailsExceptionLogger::LoggedExceptionsController.class_eval do
    # include any custom auth modules you need
    # (declarative authorization gem used)
    filter_resource_access
    # just add any code you want to be included in the controller ;)
    # optional, sets the application name for the rss feeds
    self.application_name = "Your Application Name"
  end
end

and (if you use declarative_authorization) add this to your authorization_rules.rb file:

role :admin do
  has_permission_on :logged_exceptions, :to => :manage
  ...

Testing & Development¶ ↑

Not implemented yet.

Usage¶ ↑

To localize the interface:

en:
  rails_exception_logger:
    logged_exceptions:
      index:
        title: Logged Exceptions
        filters: Filters
        latest_exceptions: Latest Exceptions
        exception: Exception
        controller_action: Controller / Action
        dates: Dates
        today: Today
        last_few_days: Last few days
        last_7_days: Last 7 days
        last_30_days: Last 30 days
      show:
        title: Logged Exception

To log extra data, in your ApplicationController:

self.exception_data = Proc.new { |controller| "Extra exception infomation here!" }

or

self.exception_data = :extra_exception_data

def extra_exception_data
  "Extra exception infomation here!"
end

To add authentication, in config/application.rb or the specific environment file:

# set up authencation of rails_exception_logger
config.after_initialize do
  RailsExceptionLogger::LoggedExceptionsController.class_eval do
    before_filter :authorize

    protected

    def authorize
      redirect_to main_app.admin_login_path unless admin_loggined?
    end

    def admin_loggined?
      session[:admin_user_id].present?
    end
  end
end

License¶ ↑

MIT License. See LICENSE for details.