Django: Обработчик глобальных исключений

Я хочу создать глобальный обработчик исключений в проекте Django. Я изучил промежуточное программное обеспечение DRF, но я хочу перехватывать все необработанные исключения из функций в моем проекте, а не только из запросов/ответов, и записывать в журнал детали ошибки (строка, функция и т.д.).

Оттуда я попытался переопределить sys.excepthook в manage.py, но обратная трассировка показывает, что она была вызвана manage.py. Он не показывает фактическую функцию, которая вызвала ошибку.

в файле manage.py: def exception_hook(exc_type, exc_value, tb): logger = logging.getLogger('django')

logger.error(sys.exc_info(), exc_info=True)


if __name__ == '__main__':
    sys.excepthook = exception_hook
    main()

LOGGING в settings.py:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
     'standard': {
         'format': '{levelname}; {asctime}; {module}; {filename}; {funcName};  {message}; {lineno}; {exc_info}',
         'style': '{',
     },
 },
'loggers': {
    'django':{
        'handlers': ['file'],
        'level':os.getenv('DJANGO_LOG_LEVEL','INFO'),
        'propagate': False,
    }
},
'handlers':{
    'file':{
        'level': 'DEBUG',
        'class': 'logging.FileHandler',
        'filename': 'debug.log',
        'formatter': 'standard'
    }
}

}

Есть ли способ сделать это правильно или в коде что-то упущено?

Вернуться на верх