Направляющие: Как записать в пользовательский файл журнала из задачи граблей в производственном режиме?

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

Я читал здесь

Как я использую пользовательский журнал для своих задач граблей в Ruby on Rails?

то, что это - нормальное поведение и также нашло #wontfix билет в маяке.

Мой вопрос: существует ли способ произвести, что продолжается, в то время как моя задача граблей работает? Это выполняет некоторую проверку и работает в течение многих часов. Я предпочел бы, если бы вывод вошел в определенный файл журнала как /log/crawler.log

Прямо сейчас я просто использую эту команду для записи в файлы журнала:

ActiveRecord::Base.logger.info "Log Text"

Спасибо!

6
задан Community 23 May 2017 в 12:07
поделиться

2 ответа

Вы можете создать новый логгер с помощью Logger.new("file.log") и затем вызвать его методы следующим образом.

  task :import_stuff => :environment do
    require 'csv'
    l = Logger.new("stuff.log")
    csv_file = "#{RAILS_ROOT}/stuff.csv"
    CSV.open(csv_file, 'r') do |row|
      l.info row[1]
     end
  end
2
ответ дан 8 December 2019 в 12:58
поделиться

Проблема заключается в том, что rails игнорирует журналы уровня «информация» в производственном режиме.

Я бы рекомендовал прочитать это: http://www.ruby-doc.org/stdlib/libdoc/logger/rdoc/classes/Logger.html

и создать свой собственный регистратор:

logger = Logger.new('logfile.log')
logger.info "Something happened"
14
ответ дан 8 December 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: