如何让delayed_job记录应用程序输出?

时间:2011-09-06 21:16:43

标签: ruby-on-rails delayed-job

我已将以下代码添加到初始化程序中:

require 'delayed/worker'

Delayed::Worker.logger = ActiveSupport::BufferedLogger.new("log/#{Rails.env}_delayed_jobs.log", Rails.logger.level)

module Delayed
  class Worker
    def say_with_flushing(text, level = Logger::INFO)
      if logger
        say_without_flushing(text, level)
        logger.flush
      end
    end
    alias_method_chain :say, :flushing
  end
end

但它似乎只输出像:

2011-09-06T14:02:04-0700:[工人(delayed_job主持人:Caribbean.local pid:80322)] 1个工作以16.5391 j / s处理,0失败... 2011-09-06T14:03:19-0700:[工人(delayed_job主持人:Caribbean.local pid:80322)]邮件测试在0.2072之后完成

...

有没有办法让它实际输出它正在做的事情?理想情况下,我想要获得的是通常在开发模式中看到的实际传出电子邮件内容,但是它会进入delayed_job.log(无论rails环境如何)。

所以没有邮件通​​过delayed_job,在生产模式下,日志中的输出类似于: [邮件发送至foo@foo.com]

但是我希望得到实际的内容,因为如果我处于开发模式 - (整个电子邮件正文,主题等),它们会被显示,但是再次在delayed_job日志中,因为delayed_job正在处理邮件电子邮件。

0 个答案:

没有答案