Module: Bugsnag
- Defined in:
- lib/bugsnag.rb,
lib/bugsnag/rack.rb,
lib/bugsnag/rails.rb,
lib/bugsnag/deploy.rb,
lib/bugsnag/resque.rb,
lib/bugsnag/helpers.rb,
lib/bugsnag/mailman.rb,
lib/bugsnag/railtie.rb,
lib/bugsnag/sidekiq.rb,
lib/bugsnag/version.rb,
lib/bugsnag/delivery.rb,
lib/bugsnag/meta_data.rb,
lib/bugsnag/capistrano2.rb,
lib/bugsnag/delay/resque.rb,
lib/bugsnag/notification.rb,
lib/bugsnag/configuration.rb,
lib/bugsnag/middleware_stack.rb,
lib/bugsnag/delivery/synchronous.rb,
lib/bugsnag/delivery/thread_queue.rb
Defined Under Namespace
Modules: Capistrano, Delay, Delivery, Helpers, MetaData, Middleware, Rails, Rake Classes: Configuration, Deploy, Mailman, MiddlewareStack, Notification, Rack, Railtie, Resque, Sidekiq
Constant Summary collapse
- LOG_PREFIX =
"** [Bugsnag] "
- VERSION =
File.read(File.join(File.dirname(__FILE__), "../../VERSION")).strip
Class Method Summary collapse
-
.after_notify_callbacks ⇒ Object
Allow access to “after notify” callbacks.
-
.auto_notify(exception, overrides = nil, request_data = nil) ⇒ Object
Auto notify of an exception, called from rails and rack exception rescuers, unless auto notification is disabled, or we should ignore this error class.
-
.before_notify_callbacks ⇒ Object
Allow access to “before notify” callbacks.
-
.clear_request_data ⇒ Object
Clear all “per-request” data, temporal data for use in bugsnag middleware This method should be called after each distinct request or session ends Eg.
-
.configuration ⇒ Object
Configuration getters.
-
.configure(config_hash = nil) {|configuration| ... } ⇒ Object
Configure the Bugsnag notifier application-wide settings.
-
.debug(message) ⇒ Object
Debug logger.
-
.log(message) ⇒ Object
Log wrapper.
-
.notify(exception, overrides = nil, request_data = nil) ⇒ Object
Explicitly notify of an exception.
-
.notify_or_ignore(exception, overrides = nil, request_data = nil) ⇒ Object
Notify of an exception unless it should be ignored.
-
.set_request_data(key, value) ⇒ Object
Set “per-request” data, temporal data for use in bugsnag middleware.
-
.warn(message) ⇒ Object
Warning logger.
Class Method Details
.after_notify_callbacks ⇒ Object
Allow access to “after notify” callbacks
112 113 114 |
# File 'lib/bugsnag.rb', line 112 def after_notify_callbacks Bugsnag.configuration.request_data[:after_callbacks] ||= [] end |
.auto_notify(exception, overrides = nil, request_data = nil) ⇒ Object
Auto notify of an exception, called from rails and rack exception rescuers, unless auto notification is disabled, or we should ignore this error class
68 69 70 71 72 |
# File 'lib/bugsnag.rb', line 68 def auto_notify(exception, overrides=nil, request_data=nil) overrides ||= {} overrides.merge!({:severity => "error"}) notify_or_ignore(exception, overrides, request_data) if configuration.auto_notify end |
.before_notify_callbacks ⇒ Object
Allow access to “before notify” callbacks
107 108 109 |
# File 'lib/bugsnag.rb', line 107 def before_notify_callbacks Bugsnag.configuration.request_data[:before_callbacks] ||= [] end |
.clear_request_data ⇒ Object
Clear all “per-request” data, temporal data for use in bugsnag middleware This method should be called after each distinct request or session ends Eg. After completing a page request in a web app
102 103 104 |
# File 'lib/bugsnag.rb', line 102 def clear_request_data Bugsnag.configuration.clear_request_data end |
.configuration ⇒ Object
Configuration getters
90 91 92 |
# File 'lib/bugsnag.rb', line 90 def configuration @configuration ||= Bugsnag::Configuration.new end |
.configure(config_hash = nil) {|configuration| ... } ⇒ Object
Configure the Bugsnag notifier application-wide settings.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/bugsnag.rb', line 29 def configure(config_hash=nil) if config_hash config_hash.each do |k,v| configuration.send("#{k}=", v) rescue nil if configuration.respond_to?("#{k}=") end end yield(configuration) if block_given? # Use resque for asynchronous notification if required require "bugsnag/delay/resque" if configuration.delay_with_resque && defined?(Resque) # Log that we are ready to rock if configuration.api_key && !@logged_ready log "Bugsnag exception handler #{VERSION} ready, api_key=#{configuration.api_key}" @logged_ready = true end end |
.debug(message) ⇒ Object
Debug logger
85 86 87 |
# File 'lib/bugsnag.rb', line 85 def debug() configuration.logger.info("#{LOG_PREFIX}#{}") if configuration.debug end |
.log(message) ⇒ Object
Log wrapper
75 76 77 |
# File 'lib/bugsnag.rb', line 75 def log() configuration.logger.info("#{LOG_PREFIX}#{}") end |
.notify(exception, overrides = nil, request_data = nil) ⇒ Object
Explicitly notify of an exception
49 50 51 |
# File 'lib/bugsnag.rb', line 49 def notify(exception, overrides=nil, request_data=nil) Notification.new(exception, configuration, overrides, request_data).deliver end |
.notify_or_ignore(exception, overrides = nil, request_data = nil) ⇒ Object
Notify of an exception unless it should be ignored
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/bugsnag.rb', line 54 def notify_or_ignore(exception, overrides=nil, request_data=nil) notification = Notification.new(exception, configuration, overrides, request_data) unless notification.ignore? notification.deliver notification else false end end |
.set_request_data(key, value) ⇒ Object
Set “per-request” data, temporal data for use in bugsnag middleware
95 96 97 |
# File 'lib/bugsnag.rb', line 95 def set_request_data(key, value) Bugsnag.configuration.set_request_data(key, value) end |
.warn(message) ⇒ Object
Warning logger
80 81 82 |
# File 'lib/bugsnag.rb', line 80 def warn() configuration.logger.warn("#{LOG_PREFIX}#{}") end |