首页 > 解决方案 > ActiveJob + Sidekiq 6.0.3:如何写入日志文件?

问题描述

我正在使用 Sidekiq 完成一些后台工作。我也在尝试将这些作业中的一些消息记录到日志文件中,但我无法完成这个简单的任务。

我正在运行的工作类型的示例

class TestJob < ApplicationJob
  queue_as :default

  def perform
    text = 'Print me to a file!'
    Rails.logger.error "Rails.logger.info : #{text}"
    logger.error "logger.info : #{text}"
  end
end

例如,在控制器操作中运行TestJob.perform_now会按预期工作,将消息打印到服务器终端输出以及logs/development.log.

但是跑步TestJob.perform_later不会打印我的消息。任何地方。不是 Sidekiq 终端,服务器终端,日志文件,什么都没有。

我尝试按照Sidekiq Logging wiki中的建议重定向日志。但是消息也没有在那里打印。

我觉得我可能错过了一些重要的东西。

标签: ruby-on-railssidekiqrails-activejob

解决方案


尝试调用Sidekiq.logger,如:

    Sidekiq.logger.error "logger.info : #{text}"

将“logger.info”放入错误日志中可能有点奇怪,但我只是从问题中发布的示例中获取。


推荐阅读