Rails 4记录所有未找到的应用程序请求

时间:2014-06-27 14:17:01

标签: ruby-on-rails logging ruby-on-rails-4 request

我想要做的是输出没有错误的日志文件所有基本上会导致404的请求?或者只是单独记录这些请求?

2 个答案:

答案 0 :(得分:1)

你最好挂钩config.exceptions_app中间件钩子:

  

设置ShowException调用的异常应用程序   异常发生时的中间件。默认为   ActionDispatch :: PublicExceptions.new(Rails.public_path)。

-

<强> exceptions_app

拥有written a gem about this,并且有一些非常nice demonstrations如何有效使用它,我建议做这样的事情:

#config/application.rb
config.exceptions_app = ->(env) { ApplicationController.action(:exception).call(env) }

#app/controllers/application_controller.rb
Class ApplicationController < ActionController::Base
   def exception
       # your code here
   end
end 

我不确定你是如何使它成为条件的(IE只捕获&#34;未找到&#34;异常),但上述内容肯定是一个起点!

答案 1 :(得分:1)

如果您所追踪的404是由于缺失引起的,我建议您使用rescue_from,应用程序控制器中的代码将如下所示:

rescue_from ActiveRecord::RecordNotFound, with: :not_found

def not_found
 # log anything in the request
end