Вход в рабочий стол Sidekiq - программирование
Подтвердить что ты не робот

Вход в рабочий стол Sidekiq

Я пытаюсь зарегистрировать прогресс моего работника sideqik, используя tail -f log/development.log в разработке и 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.info или Sidekiq.logger.info не регистрируются в лог-потоке. Заработал, заменив Rails.logger.info на puts.

4b9b3361

Ответ 1

Существует ссылка Sidekiq.logger и просто logger, которую вы можете использовать в своих рабочих. Значение по умолчанию должно быть в STDOUT, и вы должны просто направлять свой вывод в производство в путь к файлу журнала по вашему выбору.

Ответ 2

@migu, попробовали ли вы команду ниже в config/initializer.rb?

Rails.logger = Sidekiq::Logging.logger