Sha256: 36fff5ad200cb46c43bc957344164b08145a562edf4eddc19d12aa488714a9be
Contents?: true
Size: 1.25 KB
Versions: 4
Compression:
Stored size: 1.25 KB
Contents
module Exceptionally class Handler def initialize(message = nil, status = nil, e = nil, params = nil) @message = message @status = status || 500 @error = e @params = params || {} @@callback.call(@message, @status, @error, @params) if defined?(@@callback) && @@callback.respond_to?(:call) log end def self.before_render(&block) @@callback = Proc.new(&block) end def log # Log 5xx errors if @status >= 500 && @error # Support Sentry, Airbrake, and New Relic out of box, but only in production if Exceptionally.report_errors Raven.capture_exception(@error, {logger: 'Exceptionally', extra: {params: @params}}) if defined?(Raven) && Raven.respond_to?(:capture_exception) Airbrake.notify(@error, :parameters => @params) if defined?(Airbrake) && Airbrake.respond_to?(:notify) NewRelic::Agent.notice_error(@error) if defined?(NewRelic) && defined?(NewRelic::Agent) && NewRelic::Agent.respond_to?(:notice_error) end Rails.logger.error(@error.to_s) Rails.logger.error("Parameters: #{@params.to_s}") unless @params.blank? Rails.logger.error(@error.backtrace.join("\n")) unless @error.backtrace.blank? end end end end
Version data entries
4 entries across 4 versions & 1 rubygems