2013-07-12 14 views
14

開発中のtail -f log/development.logと生産中のheroku logsを使用して、私のsideqikワーカーの進捗状況を記録しようとしています。Sidekqの作業員のログ

しかし、ワーカー内のすべてとワーカーから呼び出されたものはすべてログに記録されません。以下のコードでは、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に置き換えて動作させました。

答えて

8

あなたの労働者の中で使用できるSidekiq.loggerと単純にloggerの参照があります。デフォルトはSTDOUTにする必要があります。プロダクションの出力を選択したログファイルパスに転送するだけです。

+1

ありがとうございました。 'logger.info"いくつかのログ "私は' bundle exec sidekiq'を起動したterminalウィンドウにログインしましたが、development.logにはログインしていません。私は 'bundle exec sidekiq 2>&1 |を試しました。 logger -t sidekiq'が表示されますが、ログはどこにも表示されません。 – migu

+0

同じ問題。これは解決策としてマークするべきではありません。 – johnnygoodman

1

@ミグconfig/initializer.rbで以下のコマンドを試してみましたか?

Rails.logger = Sidekiq::Logging.logger 
関連する問題