Próbuję zarejestrować postęp mojego pracownika sideqik przy użyciu tail -f log/development.log
w rozwoju i heroku logs
w produkcji.Zaloguj się do pracownika Sidekiq
Jednak wszystko wewnątrz pracownika i wszystko, co wywołuje pracownik, nie jest rejestrowane. W poniższym kodzie zapisywane jest tylko TEST 1.
Jak mogę rejestrować wszystko wewnątrz pracownika i klasy wywoływane przez pracownika?
# 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
Aktualizacja
ja nadal nie rozumiem, dlaczego Rails.logger.info
lub Sidekiq.logger.info
nie zalogujesz do strumienia dziennika. Działa to przez zastąpienie Rails.logger.info
przez puts
.
Dzięki. 'logger.info" Niektóre logi "' loguje się do okna terminala, w którym uruchomiłem 'bundle exec sidekiq', ale nie w development.log. Próbowałem 'bundle exec sidekiq 2> & 1 | logger -t sidekiq', ale dzienniki nie pojawiają się nigdzie. – migu
Ten sam problem. Nie powinno to być oznaczane jako rozwiązanie. – johnnygoodman