我现在正在寻找一种方法来记录另一个日志文件中的404错误,而不是其他错误。
有没有办法用ruby logger或log4r来实现,这样只能在新创建的日志文件中进行日志记录?
答案 0 :(得分:2)
虽然我没有具体的建议,但我确实对这类事情有一些经验。也许这会有所帮助......
-
我编写了一个名为exception_handler
的gem,它基本上插入exceptions_app
中间件,允许您向控制器操作发送任何异常。
您可以做的一件事就是使用此gem中的技术来捕获404
异常,并使用它们执行您自己的日志记录:
#config/application.rb
...
config.exceptions_app = ->(env) { ApplicationController.action(:exception).call(env) }
#app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
def exception
@error_code = ActionDispatch::ExceptionWrapper.new(env, @exception).status_code
[[own logging]] if @status == 404
end
end
这将是一个开始;我不知道你是如何制作自己的日志文件等的,而且这是非常紧缩的,如果错误不是404,它可能会超时。
答案 1 :(得分:0)
错误记录错误会在发生错误时记录,因此您无法记录错误 配置单独的error_log以记录特定错误(相反 to access_log)。
但是,您可以控制是否记录&#34;未找到&#34;错误与否 - 有配置指令&#34; log_not_found&#34;为此,请参阅 http://nginx.org/r/log_not_found