Назад | Перейти на главную страницу

Django с Apache и mod_wsgi: без системного журнала, если не установлено Debug = True

Я использую веб-сервер apache и mod_wsgi для передачи запроса в django.

$ apache2ctl -v
Server version: Apache/2.4.10 (Raspbian)
Server built:   Sep 17 2016 16:40:43

Я использую этот сайт apache для объявления приложения django:

ServerName example.com
DocumentRoot /srv/webapps/myapp

<Directory /srv/wepapps/myapp/mysite>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

WSGIDaemonProcess example.com python-path=/srv/webapps/myapp:/usr/local/lib/python3.4/dist-packages:/usr/lib/python3/dist-packages
WSGIProcessGroup example.com
WSGIScriptAlias / /srv/webapps/myapp/mysite/wsgi.py

LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined

Он отлично работает, но если возникает исключение, отображается ошибка 500, но в моем example.com_error.log. Если я изменю свои настройки, чтобы установить Debug = True, Я вижу ошибку в моем веб-браузере, но и в моем файле / var / log / apache2. Но я действительно не хочу, чтобы этот параметр оставался в моей производственной среде.

У тебя есть идея, почему я должен поставить Debug = True разрешить django писать в системные журналы?

Заранее спасибо за ваши ответы и извините, если я допустил ошибки с моим английским ;-)

В вашем файле settings.py вам нужно будет добавить следующее в конфигурацию LOGGING:

LOGGING = {
    #  ... omitting the formatters and handlers for brevity ...
    'loggers': {
        # ...  you may have other loggers here as well ...
        'django': {
            'handlers': ['name_of_your_file_handler_goes_here'],
            'level': 'DEBUG',
            'propagate': True,
        }
    }

Вероятно, вам следует установить уровень ERROR или WARN в производстве.