Sha256: 18cbb0749d8c17bef6c0dfc6cf212b8bdbdb0e65c1bdf9639f286040f2f4253f

Contents?: true

Size: 865 Bytes

Versions: 11

Compression:

Stored size: 865 Bytes

Contents

module Houston

  def self.report_exception(exception, other_data={})
    raise if Rails.env.test? || Rails.env.development?

    Rails.logger.error "#{exception.class}: #{exception.message}\n#{exception.backtrace.join("\n  ")}"

    if defined?(Airbrake)
      other_data[:parameters] ||= {}
      case exception
      when Faraday::HTTP::Error
        other_data[:parameters].merge!(_normalize_faraday_env(exception.env))
      end
      other_data[:parameters].merge!(exception.additional_information)
      Airbrake.notify(exception, other_data)
    end
  rescue Exception => e
    Rails.logger.error "\e[31;1mAn error occurred reporting the exception: \e[0;31m#{e.class}: #{e.message}\n   #{e.backtrace.join("\n  ")}\e[0m"
  end

  def self._normalize_faraday_env(env)
    env.except(:response).tap do |env|
      env[:url] = env[:url].to_s
    end
  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
houston-core-0.6.3 config/initializers/houston_report_exception.rb
houston-core-0.6.2 config/initializers/houston_report_exception.rb
houston-core-0.6.1 config/initializers/houston_report_exception.rb
houston-core-0.6.0 config/initializers/houston_report_exception.rb
houston-core-0.5.6 config/initializers/houston_report_exception.rb
houston-core-0.5.5 config/initializers/houston_report_exception.rb
houston-core-0.5.4 config/initializers/houston_report_exception.rb
houston-core-0.5.3 config/initializers/houston_report_exception.rb
houston-core-0.5.2 config/initializers/houston_report_exception.rb
houston-core-0.5.1 config/initializers/houston_report_exception.rb
houston-core-0.5.0 config/initializers/houston_report_exception.rb