0

我目前在工作中使用 Rails v2.3.5,我对语言和框架都很陌生。我需要做的是在每次用户请求网页时捕获某些信息(用户的 IP 地址、访问的 URL、访问的日期和时间以及页面呈现的时间)并将其存储在数据库中。

我注意到所有这些信息都包含在默认的 Rails 日志文件中,但我试图避免必须解析日志文件来收集这些信息。我想要的是某种方式来连接记录器并拦截此信息,或者扩展记录器并使用我的扩展版本而不是默认的 Rails 版本(ActiveSupport::BufferedLogger)。

也许其他不需要日志的解决方案?

提前致谢。

4

1 回答 1

0

您可能需要的是before_filterApplicationController 中的一个块来执行您需要执行的任何操作。从那里您可以创建您需要的任何数据库记录。例如:

class ApplicationController < ActionController::Base
  before_filter :log_user_info

protected
  def log_user_info
    # Activate a custom logging method on a model
    UserActivity.log!(
      # ... User parameters
    )
  end
end

连接到记录器可能是个坏主意,因为这是获取该信息的间接方式。不过,出于历史原因,您可能需要从中提取数据。

于 2012-06-04T19:39:09.913 回答