Alert Mails with Rails

The Ruby on Rails Wiki explains Howto Send Email When Rails Throws An Exception. It’s a bit brief.

app/controllers/application.rb has

  # send out emails each time we get an exception 
  def log_error(exception)  
    if RAILS_ENV != 'development' 
      super(exception) 
      InternalNotifier.deliver_snapshot(exception,  
                                        clean_backtrace(exception),  
                                        @session.instance_variable_get("@data"),  
                                        @params,  
                                        @request.env) 
    end 
  end 

Then do something like ruby scripts generate mailer InternalNotifier. app/models/internal_notifier.rb:

  # this is called for every exception in production mode 
  def snapshot(exception,  
               backtrace,  
               session_data,  
               params,  
               env) 
    # Email header info MUST be added here 
    @recipients = 'XXX@example.com' 
    @from = "#{MAILSENDERNAME} " 
    @subject = "CRM crashed"  
     
    # Email body substitutions go here 
    @body["exception"] = exception 
    @body["backtrace"] = backtrace 
    @body["session_data"] = session_data 
    @body["params"] = params 
    @body["env"] = env 
  end 

app/views/internal_notifier/snapshot.rhtml:

CRASH! 
--- 
 
---- 
 
---- 
 
--- 
 
--- 
 

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s