18

tail -f log/development.log開発および本番環境で使用している sideqik ワーカーの進行状況をログに記録しようとしていますheroku logs

ただし、ワーカー内のすべてとワーカーによって呼び出されるすべてはログに記録されません。以下のコードでは、TEST 1 のみがログに記録されます。

ワーカー内のすべてとワーカーが呼び出すクラスをログに記録するにはどうすればよいですか?

# 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.infoSidekiq.logger.infoログ ストリームにログインしていません。に置き換えることで機能しましRails.logger.infoputs

4

3 に答える 3

12

ワーカー内で使用できるSidekiq.logger簡単な参照があります。loggerデフォルトは STDOUT である必要があり、本番環境での出力を選択したログ ファイル パスに送信する必要があります。

于 2013-07-12T04:41:11.033 に答える
2

@migu、で以下のコマンドを試しましたconfig/initializer.rbか?

Rails.logger = Sidekiq::Logging.logger
于 2016-03-12T02:19:22.557 に答える