ruby-on-rails - 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中的建议重定向日志。但是消息也没有在那里打印。
我觉得我可能错过了一些重要的东西。
解决方案
尝试调用Sidekiq.logger
,如:
Sidekiq.logger.error "logger.info : #{text}"
将“logger.info”放入错误日志中可能有点奇怪,但我只是从问题中发布的示例中获取。
推荐阅读
- android - 当用户在他的屏幕上时如何得到通知android
- c - 为什么我基于 OpenCL 的排序算法结果是错误的?
- spring - SPRING、API、POST 正文请求
- ios - 如何为多个 HKQuantityType 标识符启用BackgroundDelivery?
- javascript - Chartjs 用于甜甜圈图的自定义图例,每个部分都带有标签线
- python - Airflow UI 无法找到提供程序模块
- sql - 如何在 SQL 中计算年龄
- postgresql - Postgres 用户无法运行位于我用户主目录中的种子文件
- python - Healpix - 将经度、纬度转换为银河坐标
- django - Django Query 获取 mongodb ArrayField 列的所有不同值的计数