我正在开发一个具有WP主页的rails应用程序,还有一些正在从WP加载的图像。在localhost上,我们无法访问导致日志中出现大量路由错误的WP内容,例如:
Started GET "/wp-content/uploads/2014/03/facebook-icon1.png" for 127.0.0.1 at 2015-11-20 15:10:48 +0200
ActionController::RoutingError (No route matches [GET] "/wp-content/uploads/2014/03/facebook-icon1.png"):
actionpack (4.2.5) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (4.2.5) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
考虑到页面上有5个图像,我们最终会为每个请求产生5个路由错误。 如何从开发环境中的日志中隐藏这些类型的错误?
答案 0 :(得分:13)
有这个确切的问题。在initializers文件夹中创建一个logger.rb文件并添加以下代码:
# spammers were blowing up our logs
# this suppresses routing errors
if Rails.env.production?
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
end
答案 1 :(得分:2)
也许这个silencer宝石可以帮到你。
用法:
在您的环境中:
require 'silencer/logger'
config.middleware.swap Rails::Rack::Logger, Silencer::Logger, :silence => [%r{^/wp-content/}]