Подтвердить что ты не робот

Журналы Heroku не работают

У меня есть приложение rails 3.1, развернутое на кедрах Героку. У меня проблема с протоколированием. Журналы рельсов по умолчанию работают нормально, но когда я делаю что-то вроде:

logger.info "log this message"

В моем контроллере Heroku ничего не записывает. Когда я развертываю свое приложение, я вижу сообщение heroku "Injecting rails_log_stdout", поэтому я думаю, что вызов регистратора должен работать нормально. Выводит заявления в мои журналы. Я также пробовал другие уровни журналов, такие как logger.error. Ничего не работает. Кто-нибудь еще видел это?

4b9b3361

Ответ 1

У меня была такая же проблема, и я решил использовать эту технику здесь:

https://github.com/ryanb/cancan/issues/511

В принципе, вам нужно указать выходы регистратора на STDOUT, некоторые камни мешают журналу и, похоже, увлекают функциональность (cancan в моем случае).

Для ленивого щелчка просто поставьте это в средах /production.rb

config.logger = Logger.new(STDOUT) 
config.log_level = :info

Ответ 2

Ответ MBHNYC отлично работает, но это затрудняет изменение уровня журнала в разных средах без изменения кода. Этот код можно использовать в environments/production.rb для соблюдения переменной среды, а также для разумного значения по умолчанию:

# https://github.com/ryanb/cancan/issues/511
config.logger = Logger.new(STDOUT)
config.logger.level = Logger.const_get((ENV["LOG_LEVEL"] || "INFO").upcase)

Используйте эту команду для установки другого уровня журнала:

heroku config:set LOG_LEVEL=error

Ответ 3

На данный момент похоже, что герою прикладывает эти два плагина при создании пули:

rails_log_stdout - https://github.com/ddollar/rails_log_stdout

rails3_server_static_assets - https://github.com/pedro/rails3_serve_static_assets

Все, отправленное в уже существующий регистратор Rails, будет отброшено и не будет отображаться в журналах. Просто добавьте это для полноты для всех, кто попадает сюда.

Ответ 4

Проблема, правильно адресованная @MBHNYC, заключается в том, что ваши журналы не будут STDOUT.

Вместо того, чтобы вручную настраивать все это, Heroku предоставляет gem, который делает все это для вас.

Просто поместите

gem 'rails_12factor', group: :production

в вашем Gemfile, bundle и что он!

ПРИМЕЧАНИЕ. Это работает как для Rails 3, так и для 4.

Источник: Rails 4 на Heroku