Ruby on rails 如何配置队列日志

Ruby on rails 如何配置队列日志,ruby-on-rails,ruby,task-queue,worker-process,Ruby On Rails,Ruby,Task Queue,Worker Process,我在任何地方都找不到关于如何将队列写入日志到文件的解决方案。Queue_Classic用于日志记录的滚动条似乎也没有任何示例 有人能提供一个工作示例吗?QC调用的方法中的日志记录将是日志记录的来源。例如,在rails中。对Rails.logger的任何调用都将转到适合您的Rails_ENV的日志文件。来自scrolls的日志数据将发送到stdout,因此您可以在启动队列时将stdout从队列传输到日志文件 您可以使用god.rb控制您的队列,并提供类似于以下内容的god.rb配置实例(我将队列数

我在任何地方都找不到关于如何将队列写入日志到文件的解决方案。Queue_Classic用于日志记录的滚动条似乎也没有任何示例


有人能提供一个工作示例吗?

QC调用的方法中的日志记录将是日志记录的来源。例如,在rails中。对Rails.logger的任何调用都将转到适合您的Rails_ENV的日志文件。来自scrolls的日志数据将发送到stdout,因此您可以在启动队列时将stdout从队列传输到日志文件

您可以使用god.rb控制您的队列,并提供类似于以下内容的god.rb配置实例(我将队列数量、目录等的配置留给您):

FWIW,我发现STDOUT日志数据没有什么帮助,可能最终只是将其发送到bitbucket

<如果日志数据是无用的,我们应该考虑删除它。

当我从命令行运行调试时,它非常好。当我试图弄清楚我做了什么来解决所有问题时(通常是捆绑问题、路径问题等)。或者我要演示队列中正在发生的事情的时间

对我来说,信息日志记录由标准lib=queue\u classic level=INFO action=insert\u job appeased=16消息和来自分叉执行或PostgreSQL的任何STDOUT/STDERR组成。我没有扩展任何日志类,因为scrolls会转到STDOUT,并且我的任务位于提供日志记录的环境中

当然,它可以被移除。我认为这实际上取决于环境和队列在做什么。如果我要做一些没有Rails.logger的事情,那么我会更有效地使用QC.log和滚动,并以这种方式为我的任务提供工具

当我使用它时,我可能会保持配置不变,这仅仅是因为任务本身调用的方法/应用程序的输出。我可能决定重写QC.log代码以添加日期/时间。我仍在努力确定什么适合我的需要

很抱歉,我的最后一行重点是我给出的环境示例


原文:

如果在谷歌上找不到答案,你也可以向github上的经典gem Autor提问。
number_queues.times do |queue_num|
  God.watch do |w|
    w.name = "QC-#{queue_num}"
    w.group = "QC"
    w.interval = 5.minutes
    w.start = "bundle exec rake queue:work" # This is your rake task to start QC listening
    w.gid = 'nginx' 
    w.uid = 'nginx'
    w.dir = rails_root
    w.keepalive
    w.env = {"RAILS_ENV" => rails_env} 
    w.log = "#{log_dir}/qc.stdout.log"  # Or....    "#{log_dir}//qc-#{queue_num}.stdout.log"

    # determine the state on startup
    w.transition(:init, { true => :up, false => :start }) do |on|
      on.condition(:process_running) do |c|
        c.running = true
      end
    end
  end
end