Журнал планировщика Resque не записывает в файл журнала

У меня есть приложение с настроенным resque и resque-scheduler. Все задания выполняются нормально, и журналы resque выводятся в файл журнала. Resque-scheduler также отлично работает, загружая и обрабатывая задания, как и ожидалось.

У меня есть одна проблема: планировщик ничего не записывает в свой лог-файл.

Я следовал инструкциям по установке здесь

https://github.com/resque/resque-scheduler#logging

И иметь этот код в моем инициализаторе.

# Define the location of the schedule
Resque.schedule = YAML.load_file(Rails.root.join('config', 'scheduled_jobs.yml'))

# Define the logger
Resque::Scheduler.configure do |c|
  c.quiet = false
  c.verbose = false
  c.logfile = File.open("#{Rails.root}/log/resque_scheduler.log", 'w+')
  c.logformat = 'text'
end

При запуске приложения создается файл resque_scheduler.log.

Когда я запускаю планировщик, он выводит следующее на стандартный вывод (окно терминала на моей виртуальной машине). Я ожидал, что это войдет в файл журнала.

$ rake resque:scheduler TERM_CHILD=1
resque-scheduler: [INFO] 2015-07-17T14:34:27+01:00: Starting
resque-scheduler: [INFO] 2015-07-17T14:34:27+01:00: Loading Schedule
resque-scheduler: [INFO] 2015-07-17T14:34:27+01:00: Scheduling daily_job_email_overdue_items_to_admin 
resque-scheduler: [INFO] 2015-07-17T14:34:27+01:00: Scheduling daily_job_to_update_status_to_overdue 
resque-scheduler: [INFO] 2015-07-17T14:34:27+01:00: Schedules Loaded

Я сделал поиск в Интернете, но не нашел никого с такой же проблемой. Любой, кто столкнулся с той же проблемой или работает, может подсказать, что мне не хватает.

Большое спасибо.


person Mark Davies    schedule 17.07.2015    source источник
comment
Вы пытались просто передать путь (строку) для c.logfile? Например. c.logfile = Rails.root.join("log/resque_scheduler.log").to_s   -  person messanjah    schedule 17.07.2015


Ответы (1)


Решение состоит в том, чтобы использовать переменную среды LOGFILE при создании задачи rake. Если файл не существует, он все равно создаст его. Базовая задача rake для запуска планировщика, который указывает файл журнала, выглядит следующим образом.

rake resque:scheduler LOGFILE=./log/resque_scheduler.log

Чувствую себя немного глупо, что я не подумал об этом раньше. Я просто предположил, что планировщик будет работать так же, как resque, и получит данные файла журнала из инициализатора.

person Mark Davies    schedule 20.07.2015