README.rdoc in error_stalker-0.0.12 vs README.rdoc in error_stalker-0.0.13
- old
+ new
@@ -1,3 +1,106 @@
-= Exception Logger
+= ErrorStalker
-As the name says, this library allows you to log exceptions to an arbitrary backend.
+ErrorStalker is an extensible exception monitor for Ruby apps.
+
+== Getting Started
+
+After installing the gem, you should require it:
+
+ require 'error_stalker'
+
+Afterwards, reporting exceptions is simple:
+
+ ErrorStalker::Client.report(application_name, exception, extra_data)
+
+This will report an exception to ErrorStalker.
+
+In Rails, you should be able to put this code in your
+ApplicationController to report all exceptions:
+
+ rescue_from Exception do |exception|
+ ErrorStalker::Client.report(application_name, exception)
+ raise exception
+ end
+
+== The ErrorStalker Server
+
+ErrorStalker has decent defaults for running in development -- when
+you call ErrorStalker::Client.report, it logs the exception to a
+logfile. If you're inside a Rails app, it will log to
+log/exceptions.log, otherwise it will put the logfile in
+/tmp/exceptions.log.
+
+This is probably not what you want in production, so ErrorStalker
+supports different backends, and comes stock with an ErrorStalker
+Sinatra server that can persist, aggregate, and show the exceptions
+your app is raising. Switching backends can be done like this:
+
+ require 'error_stalker/backend/server'
+ ErrorStalker::Client.backend = ErrorStalker::Backend::Server.new(:host => "localhost", :port => 8080)
+
+From that point on, all exceptions will be posted to the ErrorStalker server running on localhost:8080.
+
+That server is a standard Sinatra app, but you still need to run
+it. You can do that by pointing your favorite rack-enabled server at a
+config.ru that looks like this:
+
+ require 'error_stalker/server'
+
+ ErrorStalker::Server.configuration = {
+ ... # server config goes here
+ }
+
+ run ErrorStalker::Server
+
+== Data Stores
+
+The server takes two main bits of configuration. The most important is
+the data store. Currently, the server supports an in-memory data store
+(which will go away when the server does) and a persistent mongodb store (using
+mongoid). You can configure these with a hash before you start the server:
+
+ ErrorStalker::Server.configuration = {
+ 'store' => {
+ 'class' => 'ErrorStalker::Store::Mongoid',
+ 'parameters' => '/path/to/mongoid.yml'
+ }
+ }
+
+Each data store should call out the parameters it supports in its
+documentation.
+
+== Plugins
+
+The ErrorStalker server also supports a simple plugin
+architecture. Currently, it supports a simple lighthouse reporter and
+an automatic email sender. Documentation for these plugins is in the
+Rdoc for the specific classes. They are configured the same way as the
+data store:
+
+ ErrorStalker::Server.configuration = {
+ 'store' => {
+ 'class' => 'ErrorStalker::Store::Mongoid',
+ 'parameters' => '/path/to/mongoid.yml'
+ },
+ 'plugin' => [
+ {
+ 'class' => 'ErrorStalker::Plugin::EmailSender',
+ 'parameters' => {
+ 'to' => 'to_address@example.com',
+ 'from' => 'from_address@example.com'
+ }
+ },
+ ...
+ ]
+ }
+
+== Extending ExceptionStalker
+
+Feel free to write your own backends, stores, or plugins as you need
+them. As long as you follow the documentation in the ::Base classes,
+your code should fit right in. Let me know what you come up with!
+
+== License
+
+Regardless of what any other file may say about it, this code is
+licensed under the MIT license.
\ No newline at end of file