2016-02-01 3 views
0

Я тестирую систему регистрации ошибок Sentry (getentry.com) в приложении Flask. Как и исключения, я пытаюсь записать некоторые сообщения logging.INFO для фоновых процессов.Sentry logging via Flask app

Чтобы проверить, что я использую встроенный регистратор флагов для отправки сообщений в Sentry для запроса ключевых URL-адресов.

Проблема в том, что записи журнала не отправляются в Sentry по мере их возникновения. Вместо этого они, похоже, «накапливаются» и отправляются только после завершения процесса приложения, что бесполезно для производственного сервера.

Я думал, что это может быть проблема, что я использую контейнеры Docker, но я тестировал Sentry в базовом приложении и сервере отладки, и это происходит.

Я могу предоставить код, если необходимо (только на телефоне), но подумал, что этого может быть достаточно с кем-то знакомым с проблемой.

ответ

1

Вполне вероятно, что все нити модели Youre приложение использует не играет хорошо с невыполнением сторожевого SDK, резьбовая транспорт:

https://github.com/getsentry/raven-python/blob/master/raven/transport/threaded.py#L26

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

Вы должны попробовать использовать синхронную HttpTransport, или определить, является ли это верно или нет:

https://docs.getsentry.com/hosted/clients/python/transports/

+0

спасибо Давиду. Это звучит. Я буду тестировать с помощью HTTP-транспорта, и если это исправляет его как правильный ответ. –