1

我的 config/environments/development.rb 中有以下行:

    config.log_tags = [lambda { |req| Time.now }]

这非常适用于 rails 日志(它在每个条目前面加上时间戳)。

我希望我的 resque 工人也有同样的行为。的输出

p Rails.application.config.log_tags

在 resque 工作的 perform 方法中向我展示了其中有一个 proc:

[#<Proc:0x007ffb36c14920@/.../config/environments/development.rb:49 (lambda)>]

但是,日志条目仍然没有时间戳。我对为什么会发生这种情况没有任何想法......

4

1 回答 1

1

在 Rack 中间件 ( )中,每个请求都会评估一次日志标签。Rails::Rack::Logger#callResque 运行时没有 Web 请求,因此您什么也看不到。

为了得到你想要的,你应该添加类似于Rails::Rack::Logger#compute_tagsResque 的代码作为作业钩子,例如,在before_perform.

于 2013-07-25T21:04:22.273 回答