Rails: настройте регистратор в работе для работы с Papertrail

Я пытаюсь настроить свой регистратор для работы в производственной среде на приложении Rails 5.1.4, развернутом в Heroku. Я использую Papertrail, но мои пользовательские сообщения журнала там не отображаются. Я не получаю никакой ошибки. В чем дело?

Мой конфиг / environment / 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

Мои переменные Heroku:

RAILS_LOG_TO_STDOUT    enabled
RACK_ENV               production
RAILS_ENV              RAILS_ENV

В моих методах я пытался вызвать регистратор следующим образом:

Rails.logger.info "Logger message..."

Я также попытался выполнить следующие действия: https://help.papertrailapp.com/kb/configuration/configuring-centralized-logging-from-ruby-on-rails-apps/, но это не так работать тоже. В этом случае я установил gem remote_syslog_logger и изменил свой код config / environment / production.rb на:

if ENV["RAILS_LOG_TO_STDOUT"].present?
    logger           = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger    = RemoteSyslogLogger.new('my-app-name.papertrailapp.com', 5432)
  end

1 ответ

Heroku заставляет войти в STDERR/STDOUT. Установка пользовательского места назначения для ведения журнала не повлияет на среду Heroku. Чтобы получать журналы в Papertrail (или на любом другом удаленном сервере системного журнала), вам нужно настроить прием журналов.

Другие вопросы по тегам