Страница ошибки Django с DEBUG = True гораздо более детальная, чем регистрация - PullRequest
0 голосов
/ 16 октября 2019

Хотя DEBUG=True в settings.py, любая ошибка Python отображается на странице, где я вижу не только трассировку, но и каждую локальную переменную в момент исключения.

Как я могу получитьтакая подробная трассировка с локальными переменными в моих лог-файлах, когда DEBUG=False? Я пробовал это в settings.py:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
        'file': {
            'class': 'logging.FileHandler',
            'filename': os.path.join(BASE_DIR, 'logs', 'django.log'),
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
        },
        'django.template': {
            'handlers': ['file', 'console'],
            'level': 'INFO',
        },
        'app': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
    },
}

Но единственное, что я получаю в своем лог-файле и в консоли - это стандартные трассировки Python, лишенные каких-либо подробностей.

Я не хочу знать только, какая строка кода вызвала ошибку: я также хочу узнать значения переменных.

enter image description here

1 Ответ

1 голос
/ 16 октября 2019

В этом случае вам нужно написать клиентский регистратор (см. AdminEmailHandler для журнала ошибок django), по умолчанию регистратор django не возвращает вам все данные.

Я бы предпочел использовать sentry в качестве инструмента сообщения об ошибках. Это быстро для установки и прост в использовании. Он добавляет много полезной информации, такой как локальные переменные, возникновение ошибок, номер выпуска, сведения об устройстве, конечная точка API и информация о пользователе.

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