Вход в Ruby on Rails в рабочем режиме

Я хотел бы просмотреть некоторые переменные в контроллере, он пробовал следующее:

Rails.logger.debug "Year: #{Time.now.year}"

puts "Year: #{Time.now.year}, Month: #{@month}"

где я могу увидеть вывод Logger или Puts в производственном режиме? Нужно ли мне что-то настраивать, чтобы где-то их просматривать?


person user1135541    schedule 29.05.2013    source источник


Ответы (2)


Обычный уровень журнала в рабочей среде – info, поэтому журналы debug не отображаются.
Измените ведение журнала на

Rails.logger.info "Year: #{Time.now.year}"

чтобы показать это в production.log.

В качестве альтернативы (но не очень хорошей идеи) вы можете повысить уровень ведения журнала в /config/environments/production.rb:

config.log_level = :debug

Обновление Rails 4.2:

Теперь уровень отладки по умолчанию во всех средах — :debug (как упоминал @nabilh).
Если вы хотите, чтобы в рабочей среде было меньше болтовни, вы можете сбросить уровень журнала в /config/environments/production.rb до прежнего :info:

config.log_level = :info
person Martin M    schedule 30.05.2013

Хотя я считаю, что @martin-m прав в том, что вы, вероятно, не хотите загромождать свои журналы, используя config.log_level = :debug в /config/environments/production.rb, я считаю, что уровень ведения журнала по умолчанию в всех средах равен debug, начиная с Rails 4.2. Таким образом, debug журналы (и все уровни выше) будут отображаться в рабочей среде, если вы не укажете иное.

Итак, отвечая на ваш вопрос, теперь вы можете написать:

Rails.logger.debug "Year: #{Time.now.year}" и посмотрите результаты в /log/production.log.

Подробнее см. здесь. Здесь представлена ​​документация по Rails 4.1 для сравнения.

person nabilh    schedule 28.10.2015