Расположение журналов и ошибок Django

Я установил django-сервер с nginx, и на некоторых страницах он получил ошибку 403.

Где я могу найти журналы django? где я могу увидеть ошибки в деталях?

Ответ 1

Журналы установлены в вашем файле settings.py. Новый проект по умолчанию выглядит следующим образом:

# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

По умолчанию они не создают файлы журналов. Если вы хотите их, вам нужно добавить параметр filename в свой handlers

    'applogfile': {
        'level':'DEBUG',
        'class':'logging.handlers.RotatingFileHandler',
        'filename': os.path.join(DJANGO_ROOT, 'APPNAME.log'),
        'maxBytes': 1024*1024*15, # 15MB
        'backupCount': 10,
    },

Это создаст вращающийся журнал, который может получить размер 15 МБ и сохранить 10 исторических версий.

В разделе loggers выше, вам нужно добавить applogfile в handlers для вашего приложения

'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
        'APPNAME': {
            'handlers': ['applogfile',],
            'level': 'DEBUG',
        },
    }

В этом примере ваши журналы будут записываться в корень Django в файл с именем APPNAME.log

Ответ 2

Установите https://docs.djangoproject.com/en/dev/topics/logging/, после чего эта ошибка будет отображаться там, где вы указываете их. По умолчанию они, как правило, уходят в сорняки, поэтому я всегда начинаю с хорошей настройки регистрации прежде всего.

Вот действительно хороший пример базовой настройки: https://ian.pizza/b/2013/04/16/getting-started-with-django-logging-in-5-minutes/

Изменить: новая ссылка перемещена в: https://github.com/ianalexander/ianalexander/blob/master/content/blog/getting-started-with-django-logging-in-5-minutes.html

Ответ 3

Добавьте к своему settings.py:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

И он создаст файл с именем debug.log в корне вашего. https://docs.djangoproject.com/en/1.10/topics/logging/