Class: Saddle::Middleware::Logging::AirbrakeLogger

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/saddle/middleware/logging/airbrake.rb

Overview

Public: Reports exceptions to Airbrake

Instance Method Summary collapse

Constructor Details

#initialize(app, airbrake_api_key = nil) ⇒ AirbrakeLogger

Returns a new instance of AirbrakeLogger.



14
15
16
17
# File 'lib/saddle/middleware/logging/airbrake.rb', line 14

def initialize(app, airbrake_api_key=nil)
  super(app)
  @airbrake_api_key = airbrake_api_key
end

Instance Method Details

#call(env) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/saddle/middleware/logging/airbrake.rb', line 19

def call(env)
  begin
    @app.call(env)
  rescue => e
    # If we don't have an api key, use the default config
    begin
      if @airbrake_api_key
        ::Airbrake.notify(e, {:api_key => @airbrake_api_key} )
      else
        ::Airbrake.notify(e)
      end
    rescue
      # Never ever fail because we couldn't talk to Airbrake
    end
    # Re-raise the error
    raise
  end
end