геройку - как посмотреть все логи - PullRequest
443 голосов
/ 20 апреля 2010

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

heroku logs

Это показывает только около 100 строк. Нет ли способа посмотреть полные логи нашего приложения на героку?

Ответы [ 17 ]

743 голосов
/ 20 апреля 2010

Обновление (спасибо dawmail333):

heroku logs -n 1500

или, чтобы вести журналы вживую

heroku logs -t 

Документация по протоколу Heroku

Если вам нужно более нескольких тысяч строк, вы можете использовать Heroku's Syslog Drain

В качестве альтернативы (старый метод):

$ heroku run rails c
File.open('log/production.log', 'r').each_line { |line| puts line }
138 голосов
/ 11 марта 2011

В героке значительно улучшено ведение журнала!

$ heroku logs -n 500

лучше! * * 1004

$ heroku logs --tail

ссылки: http://devcenter.heroku.com/articles/logging

ОБНОВЛЕНО

Это уже не надстройки, а часть функций по умолчанию:)

50 голосов
/ 19 апреля 2012

Heroku рассматривает журналы как упорядоченные по времени потоки событий. Доступ к файлам *.log в файловой системе не рекомендуется в такой среде по разным причинам.

Во-первых, если в вашем приложении более одного dyno, то каждый файл журнала представляет только частичное представление событий вашего приложения. Вам нужно вручную объединить все файлы, чтобы получить полное представление.

Во-вторых, файловая система в Heroku является эфемерной, что означает, что всякий раз, когда ваш dyno перезапускается или перемещается (что происходит около один раз в день ), файлы журнала теряются. Таким образом, вы получаете только дневной обзор журналов этого динамо.

Наконец, в стеке Cedar , работающем heroku console или даже heroku run bash, не подключается к текущему запущенному dyno. Он порождает новый специально для команды bash. Это называется одноразовый процесс . Таким образом, вы не найдете файлы журналов для других ваших dyno, на которых запущены реальные http-процессы на том, который был создан для heroku run.

Ведение журнала , и видимость в целом, является первоклассным гражданином в Heroku, и есть несколько инструментов, которые решают эти проблемы. Во-первых, чтобы увидеть поток событий приложения в реальном времени по всем dyno и всем слоям приложения / стека , используйте команду heroku logs -t для привязки вывода к вашему терминалу.

$ heroku logs -t
2010-09-16T15:13:46-07:00 app[web.1]: Processing PostController#list (for 208.39.138.12 at 2010-09-16 15:13:46) [GET]
2010-09-16T15:13:46-07:00 app[web.1]: Rendering template within layouts/application
2010-09-16T15:13:46-07:00 heroku[router]: GET myapp.heroku.com/posts queue=0 wait=0ms service=1ms bytes=975
2010-09-16T15:13:47-07:00 app[worker.1]: 2 jobs processed at 16.6761 j/s, 0 failed ...

Это прекрасно работает для наблюдения за поведением вашего приложения прямо сейчас. Если вы хотите хранить журналы в течение более длительных периодов времени, вы можете использовать одну из многих надстроек ведения журнала , которые обеспечивают сохранение журнала, оповещения и триггеры.

Наконец, если вы хотите сохранить файлы журналов самостоятельно, вы можете настроить свой собственный syslog сток для получения потока событий от Heroku и последующей обработки / анализа самостоятельно.

Резюме: не используйте heroku console или heroku run bash для просмотра статических файлов журнала. Отправьте поток событий журнала Heroku для вашего приложения, используя heroku logs или надстройку регистрации.

22 голосов
/ 20 июня 2013

Также см. Отдельные потоки / фильтры.

Eg tail только журналы вашего приложения

heroku logs --source app -t

Или посмотреть только логи роутера

heroku logs --ps router

Или связать их вместе

heroku logs --source app --ps worker

Так хорошо ..

19 голосов
/ 19 мая 2016

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

image view

12 голосов
/ 03 августа 2015

Следуй за Геройкой, регистрируйся

Для просмотра ваших логов у нас есть:

  1. logs по умолчанию возвращает 100 строк журнала.

Герои бревен

  1. показать максимум 1500 строк, опция --num (или -n).

Герои бревен -n 200

  1. Показывать логи в реальном времени

Герои бревен - Хвост

  1. Если у вас на Герою много приложений

логи герою --app your_app_name

8 голосов
/ 11 июля 2017

Вы можете получить доступ к файлам журналов с помощью командной строки Heroku. Интерфейс ( Использование CLI ).

Если CLI Heroku установлен и вы знаете имя вашего приложения (например, https://myapp.herokuapp.com/), вы можете выполнить следующую команду:

heroku logs --tail --app=myapp

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

heroku logs --source app --tail --app=myapp

Если в журналах указано что-то вроде этого:

нпм ERR! Полный журнал этого прогона можно найти в:

нпм ERR! /app/.npm/_logs/2017-07-11T08_29_45_291Z-debug.log

Затем вы также можете получить к ним доступ через терминал bash через Heroku CLI:

heroku run bash --app=myapp
less ./.npm/_logs/2017-07-11T08_29_45_291Z-debug.log
8 голосов
/ 01 декабря 2012

heroku logs -t показывает нам живые журналы.

7 голосов
/ 15 июня 2013

Может быть стоит добавить что-то вроде бесплатного плана Papertrail в ваше приложение. Нулевая конфигурация, и вы получаете данные за 7 дней до 10 МБ / день, и можете искать через 2 дня журналов.

4 голосов
/ 15 декабря 2017

для файлов WAR:

Я не использовал github, вместо этого я загрузил напрямую файл WAR (который мне показался намного проще и быстрее).

Так что мне помогло следующее:

heroku logs --app appname

Надеюсь, это кому-нибудь поможет.

...