Bugsnag
Report exceptions in production from crystal http servers to Bugsnag.
Installation
Add this to your application's shard.yml:
dependencies:
  bugsnag:
    github: fridgerator/bugsnag
Usage
- This is meant to catch exceptions in a compiled production environment.
 - Dont use spawn to call Bugsnag.report, the http request sent to bugsnag will be done in a separate fiber.  Building the report needs the context to remain open, and if 
Bugsnag.reportis called in a spawn you will get a closed pipe error. 
require "bugsnag"
Bugsnag.config do |conf|
  conf.api_key = ENV["BUGSNAG_API_KEY"] # is automatically set by this environment variable if not specified
  conf.name = "Application Name"
  conf.version = "1.0"
  conf.url = "https://my-website.com/"
  conf.release_stage = "production"
end
# In your middleware
class MyMiddlware < MyFrameworkHandler
  def call(context)
    begin
      call_next(context)
    rescue ex
      Bugsnag.report(context, ex)
      raise ex
    end
  end
end
Contributing
- Fork it (https://github.com/fridgerator/bugsnag/fork)
 - Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
 
Contributors
- fridgerator Nick Franken - creator, maintainer