class Racknga::Middleware::ExceptionNotifier
This is a middleware that mails exception details on error. It’s useful for finding your Rack application troubles.
Usage:
require "racknga" notifier_options = { :subject_label => "[YourApplication]", :from => "reporter@example.com", :to => "maintainers@example.com", } notifiers = [Racknga::ExceptionMailNotifier.new(notifier_options)] use Racknga::Middleware::ExceptionNotifier, :notifiers => notifiers run YourApplication
Public Class Methods
new(application, options={})
click to toggle source
# File lib/racknga/middleware/exception_notifier.rb, line 38 def initialize(application, options={}) @application = application @options = Utils.normalize_options(options || {}) @notifiers = @options[:notifiers] || [] end
Public Instance Methods
call(environment)
click to toggle source
For Rack.
# File lib/racknga/middleware/exception_notifier.rb, line 45 def call(environment) @application.call(environment) rescue Exception => exception @notifiers.each do |notifier| begin notifier.notify(exception, environment) rescue Exception begin $stderr.puts("#{$!.class}: #{$!.message}") $stderr.puts($@) $stderr.puts("-" * 10) $stderr.puts("#{exception.class}: #{exception.message}") $stderr.puts(exception.backtrace) rescue Exception end end end raise end