8

如何禁用ActionController::RoutingError错误的日志记录?
我的生产日志文件充满了搜索 phpMyAdmin 和其他内容的机器人。
然后忽略真正的应用程序错误。
请帮忙。我正在运行 Rails 3.2 和乘客。

在我的 routes.rb 中,我将所有其他 url 映射到get ":code" => "shared#code",然后,如果找不到,我会显示一个带有消息的页面。但是当机器人搜索 url 之类的 url 时http://mywebsite.com/phpMyAdmin/index.php,会显示经典的错误页面“您要查找的页面不存在。”。没关系。但我只是不想在日志文件中记录这些错误。

4

1 回答 1

19

记录/显示错误的是ActionDispatch::DebugExceptions中间件。您可以只覆盖该log_error方法,例如将其粘贴在初始化程序中:

class ActionDispatch::DebugExceptions
  alias_method :old_log_error, :log_error
  def log_error(env, wrapper)
    if wrapper.exception.is_a?  ActionController::RoutingError
      return
    else
      old_log_error env, wrapper
    end
  end
end
于 2012-09-01T12:40:08.713 回答