Ruby on rails 在Sidekiq工作区内登录

Ruby on rails 在Sidekiq工作区内登录,ruby-on-rails,ruby,sidekiq,Ruby On Rails,Ruby,Sidekiq,我试图在开发中使用tail-f log/development.log,在生产中使用heroku日志来记录我的sideqik工作人员的进度 但是,worker内部的所有内容以及worker调用的所有内容都不会被记录。在下面的代码中,只记录测试1 如何记录worker内部的所有内容以及worker调用的类 # app/controllers/TasksController.rb def import_data Rails.logger.info "TEST 1" # shows up in d

我试图在开发中使用
tail-f log/development.log
,在生产中使用
heroku日志来记录我的sideqik工作人员的进度

但是,worker内部的所有内容以及worker调用的所有内容都不会被记录。在下面的代码中,只记录测试1

如何记录worker内部的所有内容以及worker调用的类

# app/controllers/TasksController.rb
def import_data
  Rails.logger.info "TEST 1" # shows up in development.log
  DataImportWorker.perform_async
  render "done"           
end

# app/workers/DataImportWorker.rb
class DataImportWorker
  include Sidekiq::Worker

  def perform    
    Rails.logger.info "TEST 2" # does not show up in development.log

    importer = Importer.new
    importer.import_data
  end
end


# app/controllers/services/Importer.rb    
class Importer  
  def import_data
    Rails.logger.info "TEST 3" # does not show up in development.log
  end
end
更新


我仍然不明白为什么
Rails.logger.info
Sidekiq.logger.info
不登录到日志流。通过将
Rails.logger.info
替换为
put

使其正常工作,您可以在工作人员中使用
Sidekiq.logger
和简单的
logger
参考。默认值应为STDOUT,您只需将生产中的输出定向到您选择的日志文件路径。

@migu,您是否在
config/initializer.rb中尝试过以下命令

Rails.logger = Sidekiq::Logging.logger
它在rails 6中工作:

# config/initializers/sidekiq.rb

Rails.logger = Sidekiq.logger
ActiveRecord::Base.logger = Sidekiq.logger

谢谢
logger.info“Some log”
登录到终端窗口,在那里我启动了
bundle exec sidekiq
,但不在development.log中。我尝试了
bundle exec sidekiq 2>&1 | logger-t sidekiq
,但是日志没有出现。同样的问题。这不应标记为解决方案。