Skip to content

itmLABS/exceptiontrap

Repository files navigation

Gem Version Maintainability

Exceptiontrap

This gem is used to catch and report your Ruby on Rails applications errors and exceptions to the Exceptiontrap webservice.

The gem is compatible with Rails >= 3 (yes, including Rails 7)

Setup

1. Install

Install the Exceptiontrap gem by putting this line to your Gemfile

gem 'exceptiontrap'

then run bundle

2. Configure

Now generate the config/exceptiontrap.yml file with

rails generate exceptiontrap --api-key YOUR_API_KEY

and you should be fine.

Note: Some exceptions are ignored by default, e.g. RoutingError and RecordNotFound errors. You can change this behavior in the config/exceptiontrap.yml file that we just generated.

Information / Further Configuration

You can find your API-Key by logging in to your Exceptiontrap Account. Select the application, and follow the Setup link.

Integration with Background Jobs and Workers

Sidekiq

Exceptiontrap catches Sidekiq errors automatically. You don't have to set up anything. Easy, right?

DelayedJob

There is no automatic integration into DelayedJob yet. Meanwhile you can let Exceptiontrap notifiy you about errors using its notify method inside DelayedJob's error hook.

class ParanoidNewsletterJob < NewsletterJob
  # ...

  def error(job, exception)
    Exceptiontrap.notify(exception, custom_controller: job.class.name)
  end
end

Resque

There is no automatic integration into Resque yet. Meanwhile you can let Exceptiontrap notifiy you about errors using its notify method inside Resque's on_failure hook.

You can also create a module with Exceptiontrap enabled and integrate it.

module ExceptiontrapJob
  def on_failure(exception, *args)
    Exceptiontrap.notify(exception, args)
  end
end

class MyJob
  extend ExceptiontrapJob
  def self.perform(*args)
    ...
  end
end

License

Copyright (c) 2021 [Torsten Bühl], released under the MIT license