加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 记录回溯,rescue_from和自定义错误页面

发布时间:2020-12-17 02:44:51 所属栏目:百科 来源:网络整理
导读:我正在尝试在项目中创建自定义错误页面 rails 3.0.20和 ruby 1.8.7. 无论如何在我的应用控制器: unless Rails.application.config.consider_all_requests_local rescue_from Exception,:with = :render_error rescue_from ActionController::RoutingError,A
我正在尝试在项目中创建自定义错误页面
rails 3.0.20和 ruby 1.8.7.

无论如何在我的应用控制器:

unless Rails.application.config.consider_all_requests_local
  rescue_from Exception,:with => :render_error
  rescue_from ActionController::RoutingError,ActionController::UnknownController,::AbstractController::ActionNotFound,ActiveRecord::RecordNotFound,:with =>    :render_error_not_found
end

然后是渲染错误方法:

def render_error(exception)
  notify_airbrake(exception)
  Rails.logger.fatal exception
  Rails.logger.fatal exception.backtrace.join("n")
  respond_to do |format|
    format.html { render :template => "errors/error_500",:layout => 'layouts/application'}
    format.all { render :nothing => true,:status => 500 }
  end
end

现在我的日志似乎充满了比通常的回溯更长的时间.
为什么会这样?有没有办法只显示回溯的“重要”部分?
在这里打电话给空气制动器是否正确?

谢谢

解决方法

检查 http://api.rubyonrails.org/classes/ActiveSupport/BacktraceCleaner.html.Rails在显示之前使用它来清理你的背部.

你可以像这样使用它:

Rails.backtrace_cleaner.clean(exception.backtrace)

我实际上在查看rails源代码,因为我认为你的异常可能在它到达render_error方法时已经被清除了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读