/
exception_reporter.rb
44 lines (38 loc) · 1.35 KB
/
exception_reporter.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
module Rollbar
module ExceptionReporter # :nodoc:
def report_exception_to_rollbar(env, exception)
return unless capture_uncaught?
log_exception_message(exception)
exception_data = exception_data(exception)
case exception_data
when Hash
env['rollbar.exception_uuid'] = exception_data[:uuid]
Rollbar.log_debug(
"[Rollbar] Exception uuid saved in env: #{exception_data[:uuid]}"
)
when 'disabled'
Rollbar.log_debug(
'[Rollbar] Exception not reported because Rollbar is disabled'
)
when 'ignored'
Rollbar.log_debug '[Rollbar] Exception not reported because it was ignored'
end
rescue StandardError => e
Rollbar.log_warning(
"[Rollbar] Exception while reporting exception to Rollbar: #{e.message}"
)
end
def capture_uncaught?
Rollbar.configuration.capture_uncaught != false
end
def log_exception_message(exception)
exception_message = exception.message if exception.respond_to?(:message)
exception_message ||= 'No Exception Message'
Rollbar.log_debug "[Rollbar] Reporting exception: #{exception_message}"
end
def exception_data(exception)
Rollbar.log(Rollbar.configuration.uncaught_exception_level, exception,
:use_exception_level_filters => true)
end
end
end