如何在rails中实现访问日志?

时间:2017-07-12 16:15:05

标签: ruby-on-rails ruby logging access-log trinidad-gem

我想在我的应用程序的ruby层中实现访问日志。我想为每个请求记录这样的内容。

192.168.2.20 - - [28/Jul/2006:10:27:10 -0300] "GET /cgi-bin/try/ HTTP/1.0" 200 3395
127.0.0.1 - - [28/Jul/2006:10:22:04 -0300] "GET / HTTP/1.0" 200 2216

我想为访问日志创建一个不同的文件,就像apache访问日志一样。我们可以在rails logger中记录请求,这很容易实现,但我们如何才能为访问日志创建单独的日志文件。我正在使用特立尼达。

1 个答案:

答案 0 :(得分:0)

您需要的所有内容都可以在响应标题和正文中找到。使用before_around_操作向您的ApplicationController添加全局操作,例如:

/application_controller.rb

around_filter :logging_traffic

  def logging_traffic 
    logger.info "USERAGENT: #{request.headers['HTTP_USER_AGENT']}"
    begin 
      yield 
    ensure 
      logger.info "response_status: #{response.status}"
    end 
  end