2013-07-12 8 views
14

मैं विकास में tail -f log/development.log और heroku logs उत्पादन में अपने साइडकिक कार्यकर्ता की प्रगति को लॉग करने का प्रयास कर रहा हूं।अंदर लॉग इन करें साइडकीक वर्कर

हालांकि, कार्यकर्ता के अंदर सबकुछ और कार्यकर्ता द्वारा बुलाए गए सबकुछ लॉग नहीं होते हैं। नीचे दिए गए कोड में, केवल टेस्ट 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.info या Sidekiq.logger.info लॉग धारा में प्रवेश नहीं करते हैं। इसे Rails.logger.infoputs के साथ बदलकर काम कर रहा है।

उत्तर

8

Sidekiq.logger और केवल logger संदर्भ है जो आप अपने कर्मचारियों के भीतर उपयोग कर सकते हैं। डिफ़ॉल्ट STDOUT होना चाहिए और आपको अपने आउटपुट को अपनी पसंद के लॉग फ़ाइल पथ पर सीधे उत्पादन में निर्देशित करना चाहिए।

+1

धन्यवाद। 'logger.info" कुछ लॉग "टर्मिनल विंडो में लॉग इन करते हैं जहां मैंने 'बंडल निष्पादन साइडकीक' लॉन्च किया लेकिन विकास.लॉग में नहीं। मैंने 'बंडल निष्पादन साइडकीक 2> और 1 | की कोशिश की लॉगर-t sidekiq' लेकिन तब लॉग कहीं भी दिखाई नहीं देते हैं। – migu

+0

वही समस्या। इसे समाधान के रूप में चिह्नित नहीं किया जाना चाहिए। – johnnygoodman

1

@ मिगु, क्या आपने config/initializer.rb में निम्न आदेश का प्रयास किया है?

Rails.logger = Sidekiq::Logging.logger 
संबंधित मुद्दे