Ich versuche, den Fortschritt meiner sideqik Arbeiter mit tail -f log/development.log
in Entwicklung und heroku logs
in der Produktion zu protokollieren.Einloggen Sidekiq Arbeiter
Jedoch wird alles im Worker und alles, was der Worker anruft, nicht eingeloggt. Im folgenden Code wird nur TEST 1 protokolliert.
Wie kann ich alles im Worker und die Klassen, die der Worker aufruft, protokollieren?
# 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
aktualisieren
Ich verstehe immer noch nicht, warum Rails.logger.info
oder Sidekiq.logger.info
nicht in den Protokollstrom protokollieren. Es funktioniert, indem Rails.logger.info
durch puts
ersetzt wird.
Danke. 'logger.info" Some log "' loggt sich in das Terminal-Fenster ein, wo ich 'bundle exec sidekiq' gestartet habe, aber nicht in development.log. Ich habe versucht 'bundle exec sidekiq 2> & 1 | logger -t sidekiq, aber dann erscheinen die Protokolle nirgends. – migu
Gleiches Problem. Dies sollte nicht als Lösung markiert werden. – johnnygoodman