登录Sidekiq工作人员

mig*_*igu 15 ruby ruby-on-rails sidekiq

我正在尝试记录我的sideqik工作者tail -f log/development.log在开发和heroku logs生产中使用的进度.

但是,工作人员内部的所有内容以及工作人员调用的所有内容都不会被记录.在下面的代码中,只记录了TEST 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
Run Code Online (Sandbox Code Playgroud)

更新

我仍然不明白为什么Rails.logger.infoSidekiq.logger.info不登录日志流.通过替换来实现Rails.logger.infoputs.

pau*_*aul 9

还有一个Sidekiq.logger,只是logger引用您可以在工人中使用.默认值应该是STDOUT,您应该将生产中的输出定向到您选择的日志文件路径.

  • 同样的问题.这不应该被标记为解决方案. (3认同)