0

我想编写一个日志模型和控制器,以记录用户所做的一切。我正在考虑使用来自 ip 地址、用户调用的控制器、显示的视图和 params.inspect 创建一个数据库表。

有没有办法获取当前正在使用的控制器的变量?部署它的最佳方法是什么?有没有做这一切的宝石?谢谢

4

1 回答 1

2

如果您将生产中的日志级别设置为 :debug,那么每个请求都会记录您需要的信息。也许,为调试生产日志编写解析器可能更容易。

如果你愿意,你也可以给你的 ApplicationController 添加一个过滤器:

class ApplicationController
  before_filter :log_activity

  def log_activity
    if Rails.env == 'production'
      @logger ||= Logger.new("#{Rails.root}/log/activity.log")
      values = [
        request.remote_ip,
        controller_name,
        action_name,
        params.inspect
      ]
      @logger.info "#{values.join ' | '}"
    end
  end

  ...
end

这可能不完整,因为您希望输出更详细,但这就是想法。

于 2012-06-06T11:53:03.240 回答