Tracking exceptions for Rails application store them in database.
This gem is base on exception_notification.
Add this line to your application's Gemfile:
gem 'exception-track'
And then execute:
$ bundle
Generate migration and config files
$ rails g exception_track:install
And mount routers:
config/router.rb
Rails.application.routes.draw do
mount ExceptionTrack::Engine => "/exception-track"
end
Migrate database:
bundle exec rails db:migrate
Now you can open: http://localhost:3000/exception-track
Add config/initializers/exception-track.rb
ExceptionTrack.configure do
# environments for store Exception log in to database.
# default: [:development, :production]
# self.environments = %i(production)
end
You can config exception_notification by itself's way, more documentations please visit:
https://github.com/smartinez87/exception_notification/
# lib/admin_constraint.rb
class AdminConstraint
def matches?(request)
return false if !request.session[:user_id]
user = User.find(request.session[:user_id])
user && user.admin?
end
end
# config/router.rb
require 'admin_constraint'
mount ExceptionTrack::Engine => "/exception-track", constraints: AdminConstraint.new
With Devise
# config/routes.rb
authenticate :user, ->(u) { u.admin? } do
mount ExceptionTrack::Engine => "/exception-track"
end
More examples: Sidekiq Web Document
The gem is available as open source under the terms of the MIT License.