19 - automatically sending application errors to your email.rb

来自「O Reilly Ruby Cookbook source code」· RB 代码 · 共 61 行

RB
61
字号
class ApplicationController < ActionController::Baseprivate   def log_error(exception)       super      Notification.deliver_error_message(exception,        clean_backtrace(exception),        session.instance_variable_get("@data"),        params,        request.env      )   endend#---class Notification < ActionMailer::Base  def error_message(exception, trace, session, params, env, sent_on = Time.now)    @recipients         = 'me@mydomain.com'    @from               = 'error@mydomain.com'    @subject            = "Error message: #{env['REQUEST_URI']}"     @sent_on            = sent_on    @body = {      :exception => exception,      :trace => trace,      :session => session,      :params => params,      :env => env    }  endend#---<!-- app/views/notification/error_message.rhtml -->Time: <%= Time.now %>Message: <%= @exception.message %>Location: <%= @env['REQUEST_URI'] %>Action: <%= @params.delete('action') %></td></tr>Controller: <%= @params.delete('controller') %></td></tr>Query: <%= @env['QUERY_STRING'] %></td></tr>Method: <%= @env['REQUEST_METHOD'] %></td></tr>SSL: <%= @env['SERVER_PORT'].to_i == 443 ? "true" : "false" %>Agent: <%= @env['HTTP_USER_AGENT'] %>Backtrace<%= @trace.to_a.join("</p>\n<p>") %>Params<% @params.each do |key, val| -%>* <%= key %>: <%= val.to_yaml %><% end -%>Session<% @session.each do |key, val| -%>* <%= key %>: <%= val.to_yaml %><% end -%>Environment<% @env.each do |key, val| -%>* <%= key %>: <%= val %><% end -%>#---

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?