我想编写一个日志模型和控制器,以记录用户所做的一切。我正在考虑用ip地址创建一个db表,用户调用的控制器,显示的视图和params.inspect。
有没有办法获得当前正在使用哪个控制器的变量?部署此方法的最佳方法是什么?有没有一个宝石可以做到这一切? 谢谢
答案 0 :(得分: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
这可能不完整,因为您希望输出更详细,但这是个主意。