Введение
Функция журнала Heroku не то же самое, что традиционные серверы Linux Так что я хотел бы написать пост, говорящий об этой функции более подробно.
Основные понятия и рабочий процесс
Во -первых, я бы хотел, чтобы вы имели базовое понимание того, как работает процесс регистрации Heroku.
Маршрутизатор Heroku’s Logplex отвечает за сопоставление и распространение записей журнала, сгенерированных вашим приложением и другими компонентами платформы Heroku
Как видите, если вы используете Heroku CLI для проверки журнала, то можете увидеть журналы из разных источников.
Команда Heroku Logs
У Heroku Cli есть команда, чтобы помочь вам быстро проверить журналы Heroku.
USAGE $ heroku logs OPTIONS -a, --app=app (required) app to run command against -d, --dyno=dyno only show output from this dyno type (such as "web" or "worker") -n, --num=num number of lines to display -r, --remote=remote git remote of app to use -s, --source=source only show output from this source (such as "app" or "heroku") -t, --tail continually stream logs --force-colors force use of colors (even on non-tty output)
Поскольку журнал поступает из разных источников, при использовании Heroku Logs
Команда, вы можете добавить некоторые параметры для фильтрации журналов.
# display logs for web $ heroku logs -d web -a heroku-app # display logs for redis plugin $ heroku logs -d heroku-redis -a heroku-app # display logs come from app $ heroku logs --source app
Вы также можете добавить -t
Чтобы увидеть журнал в реальном времени, просто так.
$ heroku logs -a heroku-app -t
Журналы Heroku выглядят так
DATATIME app[heroku-redis]: blah blah blah DATATIME app[web.1]: blah blah blah DATATIME heroku[router] blah blah blah
Итак, формат журнала — что -то вроде этого {datetime} {source} [{dyno}]: blah blah blah
, так -d
и -s
может помочь вам отфильтровать журналы в хорошем пути.
Журнал ошибок с Sentry
Поскольку журналы Heroku не выполняют работу в магазине (это работает как потоковая служба), поэтому я хотел бы дать вам способ сделать журнал ошибок.
У Хероку есть плагин под названием Часовой
Чтобы помочь вам выполнить журнал ошибок, это уловило ошибку, сохранит данные об ошибке и отправит вам уведомление по электронной почте. бесплатный план
Хорошо пойти на большинство проектов.
Вам нужно добавить дополнение для вашего приложения Heroku (вы можете сделать это на веб-странице или команде терминала
heroku Addons: Создать Sentry
)После добавления дополнения новая переменная конфигурации
Sentry_dsn
был бы aded, просто проверьте, используяHeroku Config
Затем вам нужно добавить код Sentry в свой проект. (Вы можете получить код на домашней странице Sentry)
Например, если вы хотите использовать Sentry с проектом Django.
PIP установить Sentry-SDK
Добавьте код ниже в настройки Django файл
import sentry_sdk import os from sentry_sdk.integrations.django import DjangoIntegration sentry_sdk.init( dsn=os.environ.get('SENTRY_DSN'), integrations=[DjangoIntegration()] )
Sentry поможет вам объединить данные о регистрации ошибок и Traceback, он также отправит вам отчет по ошибке по электронной почте. Таким образом, вам может не понадобиться журнал Heroku, чтобы устранить ошибку.
Постоянство ведения ведения журнала
Поскольку журнал heroku работает, как служба потока, и он не сохранит его для вас (вы можете получить только последние 1500 строк), поэтому, если вы хотите сохранить журнал туда -то, есть несколько способов сделать это.
Используйте дополнение, я бы порекомендовал
Logentries
, который также имеет бесплатный план для вас, чтобы начать.Другой способ — реализовать пользовательский
бревенчатые стоки
, пожалуйста, проверьте Heroku Doc для получения более подробной информации.
Вывод
В этом уроке Heroku я говорил о том, как использовать журналы Heroku и как использовать Sentry для записи журнала ошибок для приложения Heroku.
Если у вас есть какие -либо вопросы, пожалуйста, не стесняйтесь обращаться к нам.
Оригинал: «https://dev.to/michaelyin/heroku-logs-tutorial-1g75»