Получить трассировку стека в Django Middleware - PullRequest
0 голосов
/ 20 марта 2019

Как я могу получить трассировку стека при сбое чего-либо на стороне сервера в промежуточном программном обеспечении django?Вот то, что я попробовал, это только дает мне сообщение, а не полный стек.

class MonitorMiddleware(object):
    def process_exception(self, request, exception):
        self.error = exception.message

1 Ответ

0 голосов
/ 20 марта 2019

Ответ на «получить трассировку стека ошибок для сохранения в базе данных» из комментария:

https://docs.python.org/3/library/traceback.html

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

Также на вышеуказанной странице:

Новое в версии 3.5.

Объекты StackSummary представляют стек вызовов, готовый для форматирования.

Короткий короткий пример с объектом исключения:

>>> an_error = IndexError('tuple index out of range')
>>> traceback.print_exception(type(an_error), an_error, an_error.__traceback__)
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
IndexError: list index out of range

См. Также Извлечение информации трассировки из объекта исключения : Вам не нужно повторно вызывать исключение, однако трассировка находится в атрибуте __traceback__.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...