Rails自定义记录器多次记录相同的请求

时间:2014-05-20 09:04:15

标签: ruby-on-rails ruby logging activesupport

我在我的引擎初始化文件夹中使用了自定义记录器。代码如下所示:

@@duration_logger ||= Logger.new("#{Rails.root}/log/duration_logger.log")

ActiveSupport::Notifications.subscribe "game.players" do |name, start, finish, id, data|
  @@duration_logger.info("Request: #{data}")
end

当我执行请求时,首先记录是正常的,但第二个请求被记录2次,第三个请求被记录3-4次。并且会多次记录以下请求。到底是怎么回事?难道我做错了什么?

我通过控制器操作

呼叫订阅者
ActiveSupport::Notifications.instrument("game.players", :data => @result)

1 个答案:

答案 0 :(得分:0)

看起来它是4.0中的rails bug。每次请求到来时,它都会重新创建Subscriber对象。

以下是我创建的问题:

Github issue

以下是合并的拉取请求

Pull request

更新到最新版本修复了问题。