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'
}
}
}
Есть ли способ сделать это правильно или в коде что-то упущено?