У меня есть небольшое приложение на героку. Всякий раз, когда я хочу увидеть логи, я иду в командную строку и делаю
heroku logs
Это показывает только около 100 строк. Нет ли способа посмотреть полные логи нашего приложения на героку?
Обновление (спасибо dawmail333):
heroku logs -n 1500
или, чтобы вести журналы в прямом эфире
heroku logs -t
Если вам нужно больше , чем несколько тысяч строк вы можете использовать Heroku в Syslog Водостоки
Альтернативно (старый метод):
$ heroku run rails c
File.open('log/production.log', 'r').each_line { |line| puts line }
heroku logs -n 1500
, это лучший метод, доступный на Cedar. Если вам нужно больше строк, вам понадобится утечка системного журналаheroku run rails c
. Обновлено!heroku run cat log/production.log
?Лагерь значительно улучшился в героку!
Лучше!
ссылки: http://devcenter.heroku.com/articles/logging
ОБНОВЛЕНО
Это уже не надстройки, а часть функциональности по умолчанию :)
источник
Heroku рассматривает журналы как упорядоченные по времени потоки событий. Доступ к
*.log
файлам в файловой системе не рекомендуется в такой среде по разным причинам.Во-первых, если в вашем приложении более одного dyno, то каждый файл журнала представляет только частичное представление событий вашего приложения. Вы должны вручную объединить все файлы, чтобы получить полное представление.
Во-вторых, файловая система в Heroku является эфемерной, то есть всякий раз, когда ваш dyno перезапускается или перемещается (что происходит примерно раз в день ), файлы журнала теряются. Таким образом, вы получаете только дневной обзор журналов этого динамо.
Наконец, в стеке Cedar работает
heroku console
или дажеheroku run bash
не соединяет вас с в настоящее время работает dyno. Он порождает новый специально дляbash
команды. Это называется одноразовым процессом . Таким образом, вы не найдете файлы журналов для других ваших dyno, на которых запущены реальные http-процессы на том, для которого они созданыheroku run
.Ведение журнала и обзор в целом является первоклассным гражданином в Heroku, и существует несколько инструментов для решения этих проблем. Во-первых, чтобы увидеть поток событий приложения в реальном времени через все dyno и все уровни приложения / стека, используйте
heroku logs -t
команду для привязки вывода к вашему терминалу.Это отлично подходит для наблюдения за поведением вашего приложения прямо сейчас. Если вы хотите хранить журналы в течение более длительных периодов времени, вы можете использовать одну из многих надстроек для ведения журналов, которые обеспечивают сохранение журналов, оповещения и триггеры.
Наконец, если вы хотите сохранить файлы журналов самостоятельно, вы можете настроить свой собственный приемник системного журнала для получения потока событий от Heroku и последующей обработки / анализа самостоятельно.
Сводка: не используйте
heroku console
илиheroku run bash
для просмотра файлов статического журнала. Отправьте поток событий журнала Heroku для вашего приложения сheroku logs
помощью надстройки для регистрации.источник
Также смотрите отдельные потоки / фильтры.
Например, хвост только журналы вашего приложения
Или посмотреть только логи роутера
Или связать их вместе
Так хорошо..
источник
heroku logs --ps web.1
(с 1 dyno)Ну, приведенные выше ответы очень полезны, это поможет вам просматривать из командной строки. Принимая во внимание, что если вы хотите сделать это из своего графического интерфейса, вы должны войти в свою учетную запись heroku, а затем выбрать приложение и, наконец, нажать на просмотр журналов.
источник
Следуйте в журнале Heroku
Для просмотра ваших логов у нас есть:
--num
(или-n
) вариант.источник
heroku logs -t
показывает нам живые журналы.источник
Вы можете получить доступ к своим файлам журнала, используя интерфейс командной строки Heroku ( использование CLI ).
Если CLI Heroku установлен и вы знаете имя своего приложения (например
https://myapp.herokuapp.com/
), то вы можете выполнить следующую команду:Вы также можете получить доступ к журналам в режиме реального времени, используя:
Если логи говорят вам что-то вроде этого:
Затем вы также можете получить к ним доступ через терминал bash через Heroku CLI:
источник
/usr/bin/less: cannot execute binary files
Может быть, стоит добавить что-то вроде бесплатного плана Papertrail в ваше приложение. Нулевая конфигурация, и вы получаете данные за 7 дней до 10 МБ / день, и можете искать через 2 дня журналов.
источник
для файлов WAR:
Я не использовал github, вместо этого я загрузил напрямую файл WAR (который, как мне показалось, намного проще и быстрее).
Так что мне помогло следующее:
Надеюсь, это кому-нибудь поможет.
источник
Вам нужно использовать
-t
или--tail
опцию, и вам нужно определить имя вашего приложения heroku.источник
Мое решение - получить полный журнал при первом запуске приложения, например:
затем добавьте,
fgrep -vf
чтобы поддерживать его в актуальном состоянии, например:для непрерывного ведения журнала просто повторяйте его, используя часы каждые x минут (или секунд).
источник
Чтобы увидеть подробный журнал, вам нужно поместить в
production.rb
файл две строки :а затем запустив
Вы можете увидеть подробные журналы.
источник
Я предпочитаю делать это так
Вы можете оставить скрипт запущенным в фоновом режиме и просто отфильтровывать логи из текстового файла так, как вам хочется в любое время.
источник
Вам нужно внедрить некоторые операции очистки журналов, и там должны быть очищены ваши журналы, чтобы увидеть все журналы (также управлять историческими журналами):
А затем войдите в свой сервер Spunk и найдите любое количество журналов. Я использую Splunk, и это прекрасно работает для меня.
Второй вариант - вы можете приобрести надстройку для своего приложения, как указано ниже: (я не использовал эти опции, но они доступны).
https://github.com/goodeggs/heroku-log-normalizer
У него нет Readme.md, но некоторые объяснения даются по адресу https://github.com/goodeggs/bites/issues/20.
наконец
И вы всегда можете использовать команду ниже, как уже упоминалось другими пользователями:
Следующая команда завяжет генерирующие логи на героку
Следующая команда покажет 1000 строк в логах от heroku
источник
Я предлагаю использовать аддон, я использую Logentries. Чтобы использовать его, запустите в командной строке:
heroku addons:create logentries:le_tryit
(эта команда создает аддон для бесплатной учетной записи, но вы можете обновить ее, если хотите)
Logentries позволяет сохранить до 5 ГБ объема журнала в месяц. Эта информация доступна для поиска по команде поиска в течение последних 7 дней, и она имеет оповещения в режиме реального времени.
Поэтому, чтобы ответить на ваш вопрос, используя это дополнение, вы гарантируете, что ваши журналы больше не будут потеряны, когда вы достигнете 1500 строк, которые Heroku сохраняет по умолчанию. Надеюсь это поможет! Хорошего дня!
источник
heroku logs -t
показывает нам живые журналы.heroku logs -n 1500
для определенного количества бревенНо все же я бы порекомендовал использовать надстройку бумажного следа, которая имеет определенные преимущества и имеет бесплатный базовый план.
источник
Ты можешь использовать
heroku logs -n 1500
Но это не рекомендуемый подход (другими словами, не показывает реальную картину)
Я хотел бы предложить вам подключить некоторые средства ведения журнала. (sumoLogic, бумага все) в качестве дополнения
Все они имеют бесплатную версию (с небольшими ограничениями, хотя этого достаточно для небольшого приложения или dev env, что обеспечит хорошее понимание и инструмент для анализа журналов)
источник
Для стека кедра см .:
https://devcenter.heroku.com/articles/oneoff-admin-ps
вам нужно запустить:
геройку беги баш ...
источник
heroku run bash
раскручивается новый динамо для размещенияbash
команды. Файловая система в этом dyno не будет содержать никаких файлов журналов от «активных» веб-dyno, поэтому этот подход не будет работать.