将用户ID添加到RubyOnRails日志条目的最佳方法是什么?

时间:2008-11-04 22:47:12

标签: ruby-on-rails logging

我正在寻找自定义Rails日志条目的最佳方法(我想在其中添加用户ID)。我正在使用Rails 2.1.2。到目前为止,我找到的唯一方法是覆盖类BufferedLogger的方法“add”(在active_support / lib / active_support中定义)。

但它并不漂亮:我必须复制那里的所有代码而且它是 与当前的实施密切相关。有没有更好的办法? 我在Google上发现了这个:http://pandejo.blogspot.com/2007/08/customize-logger-message-format.html但它似乎过时了。 有一天,我可能会创建一个特定的审核日志,但这样做太过分了 我需要的是:http://maintainable.com/articles/rails_logging_tips#audit-logs 欢呼声。

3 个答案:

答案 0 :(得分:1)

您是否看过user_event_logger插件?

答案 1 :(得分:1)

您可以在application_controller中的after_filter中执行logger.info:

after_filter :logging
 def logging
  if logger && logged_in?
   logger.info "UserID: #{current_user.id.to_s}"
  end
 end

答案 2 :(得分:0)

您想要捕获什么,每个用户执行的每个操作,或者只是一个特定的操作子集?如果子集一个快速而又脏的方法就是简单地使用记录器调用将用户id转储到日志中以便跟踪要执行的操作。