Module: Airbrake
- Defined in:
- lib/airbrake.rb,
lib/airbrake/rack.rb,
lib/airbrake/rails.rb,
lib/airbrake/notice.rb,
lib/airbrake/sender.rb,
lib/airbrake/railtie.rb,
lib/airbrake/sinatra.rb,
lib/airbrake/version.rb,
lib/airbrake/response.rb,
lib/airbrake/backtrace.rb,
lib/airbrake/capistrano.rb,
lib/airbrake/configuration.rb,
lib/airbrake/user_informer.rb,
lib/airbrake/rails/middleware.rb,
lib/airbrake/rails/error_lookup.rb,
lib/airbrake/utils/rack_filters.rb,
lib/airbrake/utils/params_cleaner.rb,
lib/airbrake/rails/controller_methods.rb,
lib/airbrake/rails/action_controller_catcher.rb
Defined Under Namespace
Modules: Capistrano, Rails, RakeHandler, Utils Classes: Backtrace, CollectingSender, Configuration, Notice, Rack, Railtie, Response, Sender, Sinatra, UserInformer
Constant Summary collapse
- API_VERSION =
"2.4"
- LOG_PREFIX =
"** [Airbrake] "
- VERSION =
"4.3.0".freeze
- SENSITIVE_RACK_VARS =
%w( HTTP_X_CSRF_TOKEN HTTP_COOKIE HTTP_AUTHORIZATION action_dispatch.request.unsigned_session_cookie action_dispatch.cookies action_dispatch.unsigned_session_cookie action_dispatch.secret_key_base action_dispatch.signed_cookie_salt action_dispatch.encrypted_cookie_salt action_dispatch.encrypted_signed_cookie_salt action_dispatch.http_auth_salt action_dispatch.secret_token rack.request.cookie_hash rack.request.cookie_string rack.request.form_vars rack.session rack.session.options )
- RACK_VARS_CONTAINING_INSTANCES =
%w( action_controller.instance action_dispatch.backtrace_cleaner action_dispatch.routes action_dispatch.logger action_dispatch.key_generator rack-cache.storage rack.errors rack.input )
- SENSITIVE_ENV_VARS =
[ /secret/i, /password/i ]
- FILTERED_RACK_VARS =
SENSITIVE_RACK_VARS + SENSITIVE_ENV_VARS + RACK_VARS_CONTAINING_INSTANCES
Class Attribute Summary collapse
-
.configuration ⇒ Object
The configuration object.
-
.sender ⇒ Object
The sender object is responsible for delivering formatted data to the Airbrake server.
Class Method Summary collapse
- .build_lookup_hash_for(exception, options = {}) ⇒ Object
-
.configure(silent = false) {|configuration| ... } ⇒ Object
Call this method to modify defaults in your initializers.
-
.environment_info ⇒ Object
Returns the Ruby version, Rails version, and current Rails environment.
-
.logger ⇒ Object
Look for the Rails logger currently defined.
-
.notify(exception, opts = {}) ⇒ Object
Sends an exception manually using this method, even when you are not in a controller.
-
.notify_or_ignore(exception, opts = {}) ⇒ Object
Sends the notice unless it is one of the default ignored exceptions.
-
.report_environment_info ⇒ Object
Prints out the environment info to the log for debugging help.
-
.report_notice(notice) ⇒ Object
Prints out the details about the notice that wasn’t sent to server.
- .report_notice_not_sent_for_configuration ⇒ Object
-
.report_ready ⇒ Object
Tell the log that the Notifier is good to go.
-
.report_response_body(response) ⇒ Object
Prints out the response body from Airbrake for debugging help.
-
.write_verbose_log(message) ⇒ Object
Writes out the given message to the #logger.
Class Attribute Details
.configuration ⇒ Object
The configuration object.
115 116 117 |
# File 'lib/airbrake.rb', line 115 def configuration @configuration ||= Configuration.new end |
.sender ⇒ Object
The sender object is responsible for delivering formatted data to the Airbrake server. Must respond to #send_to_airbrake. See Airbrake::Sender.
43 44 45 |
# File 'lib/airbrake.rb', line 43 def sender @sender end |
Class Method Details
.build_lookup_hash_for(exception, options = {}) ⇒ Object
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/airbrake.rb', line 142 def build_lookup_hash_for(exception, = {}) notice = build_notice_for(exception, ) result = {} result[:action] = notice.action rescue nil result[:component] = notice.component rescue nil result[:error_class] = notice.error_class if notice.error_class result[:environment_name] = 'production' unless notice.backtrace.lines.empty? result[:file] = notice.backtrace.lines.first.file result[:line_number] = notice.backtrace.lines.first.number end result end |
.configure(silent = false) {|configuration| ... } ⇒ Object
Call this method to modify defaults in your initializers.
101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/airbrake.rb', line 101 def configure(silent = false) yield(configuration) self.sender = if configuration.test_mode? CollectingSender.new(configuration) else Sender.new(configuration) end report_ready unless silent self.sender end |
.environment_info ⇒ Object
Returns the Ruby version, Rails version, and current Rails environment
76 77 78 79 80 81 |
# File 'lib/airbrake.rb', line 76 def environment_info info = "[Ruby: #{RUBY_VERSION}]" info << " [#{configuration.framework}]" if configuration.framework info << " [Env: #{configuration.environment_name}]" if configuration.environment_name info end |
.logger ⇒ Object
Look for the Rails logger currently defined
89 90 91 92 |
# File 'lib/airbrake.rb', line 89 def logger self.configuration.logger || Logger.new(nil) end |
.notify(exception, opts = {}) ⇒ Object
Sends an exception manually using this method, even when you are not in a controller.
131 132 133 |
# File 'lib/airbrake.rb', line 131 def notify(exception, opts = {}) send_notice(build_notice_for(exception, opts)) end |
.notify_or_ignore(exception, opts = {}) ⇒ Object
Sends the notice unless it is one of the default ignored exceptions
137 138 139 140 |
# File 'lib/airbrake.rb', line 137 def notify_or_ignore(exception, opts = {}) notice = build_notice_for(exception, opts) send_notice(notice) unless notice.ignore? end |
.report_environment_info ⇒ Object
Prints out the environment info to the log for debugging help
55 56 57 |
# File 'lib/airbrake.rb', line 55 def report_environment_info write_verbose_log("Environment Info: #{environment_info}") end |
.report_notice(notice) ⇒ Object
Prints out the details about the notice that wasn’t sent to server
65 66 67 |
# File 'lib/airbrake.rb', line 65 def report_notice(notice) write_verbose_log("Notice details: \n#{notice}") end |
.report_notice_not_sent_for_configuration ⇒ Object
69 70 71 72 73 |
# File 'lib/airbrake.rb', line 69 def report_notice_not_sent_for_configuration write_verbose_log("Notice was not sent due to configuration: \ \n Environment Monitored? #{configuration.public?} \ \n API key set? #{configuration.configured?}") end |
.report_ready ⇒ Object
Tell the log that the Notifier is good to go
50 51 52 |
# File 'lib/airbrake.rb', line 50 def report_ready write_verbose_log("Notifier #{VERSION} ready to catch errors") end |
.report_response_body(response) ⇒ Object
Prints out the response body from Airbrake for debugging help
60 61 62 |
# File 'lib/airbrake.rb', line 60 def report_response_body(response) write_verbose_log("Response from Airbrake: \n#{Response.pretty_format(response)}") end |
.write_verbose_log(message) ⇒ Object
Writes out the given message to the #logger
84 85 86 |
# File 'lib/airbrake.rb', line 84 def write_verbose_log() logger.debug LOG_PREFIX + if logger end |