Написал для Django кастомный Middleware для отлова ошибок и складирования их (не важно куда, будь то ELK или Sentry). Внутри класса реализовал функцию process_exception, в которую приходят: request - HTTP запрос в формате Django, exception - сама ошибка, наследник Exception.
При попытке вывести exception куда-либо в строковом формате я получаю только само сообщение об ошибке, без указания модуля, в которой она возникла. Если выполняю джанговую response_for_exception(request, exception), то вместе с трейсом получаю кучу нагромождённого HTML-кода, мешающего найти трейс.
Сейчас код выглядит примерно так:
def process_exception(self, request, exception: Exception):
error_msg = response_for_exception(request, exception).content.decode('utf-8')
log({ 'error_msg': error_msg })