Tartarus

It is a deep, gloomy place, a pit, or an abyss used as a dungeon of torment and suffering..

Tartarus provides logging to your database for exceptions triggered by the users of your Rails application. A generator is included that will give you a clean interface to view and manage the exceptions.

Dependencies

If you wish to use the generator to build the exception viewing/manging interface, the following dependencies are used:

  • will_paginate

  • json

  • jquery

Installation

Rails 2.x

  1. Install the gem from:

    gem install tartarus --version=1.0.3
    
  2. Add the tartarus gem dependency to your enviroment.rb:

    config.gem "tartarus"
    
  3. Run the generator from the root of your Rails application:

    script/generate tartarus
    

Rails 3.x

  1. Add the tartarus gem to your Gemfile:

    gem 'tartarus', '2.2'
    
  2. Run ‘bundle install’ to install the gem.

  3. Run the generator from the root of your Rails application:

    rails generate tartarus
    

Complete Setup

  1. Run the migration that was generated:

    rake db:migrate
    
  2. Add “config.middleware.use ‘Tartarus::Rack’ to the enviroments that you’d like logging in.

  3. Add the javascript and stylesheet includes in your layout:

    <script type="text/javascript" src="/javascripts/tartarus.jquery.js"></script>
    <link href="/stylesheets/tartarus.css" media="all" rel="stylesheet" type="text/css" />
    

Configuration

Configuration is handled by config/exceptions.yml, which will be generated for you. You typically will not need to change anything in here, however you can use this to set an email address to have exception notifications delivered to, and a threshold. The threshold indicates how frequently to send the notification, and is handled per-exception grouping (you will be notified every time the threshold is reached, so with the default of 10 you will be notified at 10,20,30,etc.). In addition, when an email is set, a notification will always be sent everytime a new type of exception is raised.

TODO

* Campfire notifications
* Move configuration from the YAML file into the middleware initializer.

License

Copyright © 2009 Daniel Insley

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.