как печатать текст на логи героя? - PullRequest
0 голосов
/ 29 ноября 2018

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

из команды:

heroku logs

Я хочу отобразить с данной страницыконтроллер что-то вроде:

puts "****test****"

эта статья heroku говорит, что ему нужно настроить с помощью:

config.ru

$stdout.sync = true

и я пишу между этими двумя строками:

require_relative 'config/environment'

$stdout.sync = true   # <----

run Rails.application

В той же статье говорится, что нам нужно добавить config.logger = Logger.new(STDOUT) в «в конфигурацию вашего приложения, чтобы получить запись stdout».

Итак, добавлено внутри production.rb между этими строками:

  # (...)

  config.logger = Logger.new(STDOUT) # <---

  config.log_level = :debug

  config.log_tags = [ :request_id ]

  # (...)

Это не работает.

1 Ответ

0 голосов
/ 29 ноября 2018

В вашем production.rb файле вы должны иметь эту конфигурацию (она должна быть уже там, но не мешает убедиться)

if ENV["RAILS_LOG_TO_STDOUT"].present?
  logger           = ActiveSupport::Logger.new(STDOUT)
  logger.formatter = config.log_formatter
  config.logger    = ActiveSupport::TaggedLogging.new(logger)
end

Это говорит о том, что вам нужно убедиться, чтоRAILS_LOG_TO_STDOUT переменная окружения имеет производственное значение.

$ heroku config:set RAILS_LOG_TO_STDOUT=enabled

Затем в вашем контроллере вы можете вызвать что-то вроде

logger.debug "****test****"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...