【发布时间】:2021-01-18 03:34:44
【问题描述】:
我遇到了一个关于日志的问题。我使用 ActiveJob 和 Sidekiq 构建了一个 Rails 应用程序。
我想从后台作业向 Rails 日志写入一个条目。
通常,当我想写一个条目时,我会做这样的事情(例如在控制器中):
Rails.logger.fatal "BIG ISSUE!!!"
所以我也想做同样的事情,但这次是在后台工作:
class MyJob < ApplicationJob
queue_as :default
def perform(*args)
Rails.logger.fatal"FATAL TEST"
end
end
但是,rails 日志中没有写入任何内容。你能解释一下为什么吗?以及如何做到这一点?
【问题讨论】:
-
您在运行 Sidekiq 的环境中设置的日志级别是多少?在关闭了日志记录或日志级别设置为高的环境中运行它可能是一个问题(尽管总是应该通过致命的)。你能在你的 sidekiq 作业中添加一些调试,让它发出日志级别、环境,如果它的开发者,它认为写入的文件名?
puts Rails.env;puts Rails.logger.level;puts Rails.logger.instance_variable_get('@logdev').instance_variable_get('@dev').path
标签: ruby-on-rails logging sidekiq rails-activejob