【问题标题】:Stop logging ActionController::RoutingError Rails 3.2停止记录 ActionController::RoutingError Rails 3.2
【发布时间】:2012-08-26 23:53:54
【问题描述】:

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

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

【问题讨论】:

  • 感谢您提出与我要问的完全相同的问题。

标签: ruby-on-rails ruby-on-rails-3 passenger


【解决方案1】:

记录/显示错误的是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

【讨论】:

  • 感谢您的帮助。但是我可以问你,我应该把这个放在哪里?我的意思是哪个文件和文件夹。
  • 初始化器位于配置/初始化器中
  • 我曾经尝试从生产环境中删除DebugExceptions,但它比解决的麻烦更多,所以我不得不把它们放回去。太糟糕了,我没有写下这种方法的问题所在。
  • 不知道说实话
猜你喜欢
  • 1970-01-01
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
相关资源
最近更新 更多