radar
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:Easily report errors in your libraries and applications any way you want!
# Radar

* Source: [http://github.com/mitchellh/radar](http://github.com/mitchellh/radar)
* IRC: `#vagrant` on Freenode
* User Guide: [http://radargem.com/doc/file.user_guide.html](http://radargem.com/doc/file.user_guide.html)
* Website: [http://radargem.com](http://radargem.com)

Radar is an ultra-configurable exception reporting library for Ruby which
lets you report errors in your applications any way you want. Read about
the [rationale behind Radar](http://radargem.com/rationale.html).

## Brief Feature Breakdown

  - Reporters allow Radar to report anywhere: a file, a server, email, etc.
  - Data extensions enable you to add additional contextual data to exceptions
  - Matchers are able to filter which exceptions are reported
  - Filters remove sensitive data from exceptions
  - Routes allow different exceptions events to be handled differently
  - Run multiple Radar "applications" side-by-side, so your application and
    libraries can all have Radar integrated and running together in harmony
  - Integration with 3rd party software: Rack, Rails 2, Rails 3, and Sinatra
  - Drop-in replacement and integration with [Hoptoad](http://hoptoadapp.com)

## Documentation and User Guide

While the quick start is below, you can find details documentation by visiting
the [user guide](http://radargem.com/doc/file.user_guide.html) and [website](http://radargem.com).

## Quick Start

### Installation

Radar is packaged as a RubyGem, just install it like any other:

    gem install radar

### Your First Application

Each configured Radar instance is known as an _application_. The ability
to encapsulate all your error reporting configuration into applications
allows your app and all its depedencies to have Radar built-in, without
overlapping. So the first thing to do with Radar is to create a new
Radar application and configure it:

    Radar::Application.new(:my_application) do |app|
      app.reporter :file
      app.rescue_at_exit!
    end

The above tells your application to do the following:

* Use a _file reporter_ to report errors. **Reporters** allow Radar to notify
  literally any sort of service of errors. In this case, Radar will simply output
  errors to a file. Multiple reporters can be configured.
* `rescue_at_exit!` tells Radar to rescue any app-crashing errors. Radar will hook
  into the Ruby callback when your app crashes and reports that error quickly
  before crashing.

There are _tons_ more which can be configured on an application, such as
filters, routes, and more. See the `examples` directory for a bunch of
examples which you can run right away.

Of course, the above application will only automatically catch exceptions that
crash your app. Perhaps somewhere in the middle of your application you want to
report an exception which you caught. You can do that too:

    Radar[:my_application].report(exception)

### 3rd Party Framework Integration

Out of the box, Radar can integrate with Rack, Rails 2, Rails 3, and Sinatra.
By "integrate," we mean that Radar will automatically catch exceptions during
web requests and report them along with adding some nice contextual information
about the request. There is nothing special about these integrations, they're
simply pre-configured Radar applications with a certain set of data extensions.
It is still up to you to configure everything else.

Since integration is [documented in great detail](http://radargem.com/doc/file.user_guide.html)
in the user guide, a brief example is show here:

    Radar::Application.new(:my_rails_app) do |app|
      # ... other config here

      app.integrate :rails3
    end

That's it! Same with Rack, Sinatra, etc.

### What sort of data is recorded?

When an exception is raised, Radar grabs it and wraps it up as an _exception event_.
This event is then passed onto reporters which do something about it. A JSON
representation of a bare exception event is shown below, but keep it mind that
this can be easily extended to add application-specific information or context-sensitive
information with **data extensions**.

    {
       "application":{
          "name":"my_application"
       },
       "exception":{
          "klass":"RuntimeError",
          "message":"This was an example exception",
          "backtrace":[
             "test.rb:28:in `
'" ], "uniqueness_hash":"296d169e7928c4433ccfcf091b4d737aabe83dcb" }, "occurred_at":1281894743, "host_environment":{ "ruby_version":"1.9.2", "ruby_pl":-1, "ruby_release_date":"2010-07-11", "ruby_platform":"x86_64-darwin10.4.0" } } ## Reporting Bugs and Requesting Features Please use the [issues section](http://github.com/mitchellh/radar/issues) to report bugs and request features. This section is also used as the TODO area for the Radar gem. ## Contributing To hack on Radar, you'll need [bundler](http://github.com/carlhuda/bundler) which can be installed with a simple `gem install bundler`. Then, do the following: bundle install rake This will run the test suite, which should come back all green! Then you're good to go. The general steps to contributing a new change are: 1. Fork the repository 2. Make your changes, writing tests if necessary 3. Open an [issue](http://github.com/mitchellh/radar/issues) with the feature and a link to your fork or a gist with a patch. 4. Wait patiently, for I am but one man.

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。