Heroku не работает - PullRequest
       55

Heroku не работает

14 голосов
/ 11 ноября 2011

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

logger.info "log this message"

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

Ответы [ 4 ]

34 голосов
/ 03 мая 2012

Ответ 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
18 голосов
/ 24 ноября 2011

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

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

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

Для ленивых кликов, просто поместите это в environment / production.rb

config.logger = Logger.new(STDOUT) 
config.log_level = :info
4 голосов
/ 02 ноября 2012

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

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

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

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

3 голосов
/ 24 апреля 2015

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

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

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

gem 'rails_12factor', group: :production

в свой Gemfile, bundle, и все!

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

Источник: Рельсы 4 на Героку

...