Как включить ведение журнала для приложения Padrino на Heroku?

Помогите мне здесь; Должно быть, я упускаю что-то действительно очевидное.

У меня есть приложение Padrino, работающее на Heroku. В boot.rb в блоке, переданном Padrino.before_load, у меня есть следующие строки:

Padrino::Logger::Config[:production][:log_level] = :info
Padrino::Logger::Config[:production][:stream] = :stdout

А в блоке before в app.rb у меня разбросаны вызовы logger.info.

Это регистрируется в стандарте на моей машине разработки. Но когда я проверяю свои журналы Heroku:

heroku logs -t -s app

... Я ничего не вижу (только начальные 3 строки информации о запуске с тонкого сервера).

Что мне не хватает?


Некоторые разъяснения в ответ на culix:

  1. Переход на heroku logs -s app после запуска приложения для меня ничего не меняет.
  2. Я попытался установить Papertrail. Что на самом деле выглядит очень красиво! Но у него все еще нет сообщений журнала, которые я ищу.
  3. Это хороший вопрос! Я действительно делал только что вызовы logger.info в блоке before. Я добавлю больше журналов и вернусь после того, как закончу обновлять этот вопрос.
  4. Теперь, когда вы спрашиваете: мое приложение, похоже, ничего не регистрирует, когда я переключаюсь на работу в «производстве» (после изменения database.rb, чтобы просто указать на базу данных разработки). Я думаю, это означает, что я просто неправильно настраиваю ведение журнала Padrino. Спасибо, что задали этот вопрос!
  5. Последний boot.rb зафиксирован.
  6. Нет, никоим образом (преднамеренно) не возиться с stdout.

Очевидно, что первое, на что я должен потратить время, это № 4 выше; это то, что я буду делать сейчас. Затем, если это ничего не даст, переходите к пункту 3.


person Dan Tao    schedule 15.08.2012    source источник
comment
рад слышать, что у вас есть зацепки :) Держите меня в курсе!   -  person culix    schedule 02.09.2012


Ответы (1)


Вот несколько простых вопросов, чтобы убедиться, что мы рассмотрели основы:

  1. Вы запускаете heroku logs -t до или после запуска вашего приложения? Если вы не запустите это до тех пор, пока сброс переключателя -t и запуск heroku logs -s app не отобразит что-нибудь?

  2. Добавлены ли в ваше приложение какие-либо аддоны очистки системного журнала? Если да, то они что-нибудь отображают? Если нет, попробуйте добавить его и снова запустить приложение — отображаются ли какие-либо данные журнала в стоке?

  3. После развертывания на heroku, если вы посещаете веб-сайт своего приложения и используете страницы своего приложения, отображаются ли результаты какой-либо другой активности в журналах или стоке системного журнала? то есть вы можете подтвердить, является ли это проблемой со всеми журналами вашего приложения при работе на серверах heroku, а не только с журналами событий в разделе before?

  4. При работе на вашем локальном компьютере ваше приложение по-прежнему регистрируется в :production или оно регистрируется где-то еще? то есть ваше приложение делает то же самое локально, что и когда оно работает на машине-героку? Было ли ваше развернутое приложение каким-то образом настроено для работы в другой среде ведения журналов Padrino?

  5. Привязана ли последняя версия вашего файла boot.rb к репозиторию git, которое вы отправляете на героку? Если вы выполните heroku run ls в соответствующем каталоге, сможете ли вы увидеть файл на динамометрическом веб-сайте heroku?

  6. В крайнем случае, вы не делаете ничего, что мешает stdout, перенаправляет операторы вывода или печати куда-то еще или что-то в этом роде?

person culix    schedule 29.08.2012
comment
Эти абсолютно уравновешенные вопросы привели меня к выводу, что даже при локальном запуске с PADRINO_ENV, настроенным на производство, я не видел того логирования, которого ожидал. Это заставило меня поэкспериментировать с другими способами установки уровней журнала, и в конце концов я обнаружил, что установка константы PADRINO_LOGGER с соответствующими настройками привела меня к тому, чего я хотел. Спасибо! - person Dan Tao; 04.09.2012