Registre todas as solicitações para arquivar o Django

Quando executo o servidor de desenvolvimento django (./manage.py runserver) todos os URLs solicitados são convenientemente registrados no processo stdout, com o tempo preciso e o código de resposta:

[09/Jun/2016 23:35:53] "GET /api/game/ HTTP/1.1" 404 3185
[09/Jun/2016 23:36:01] "GET /api/game/123/ HTTP/1.1" 404 1735

É muito útil porque, ao analisar a saída, você vê imediatamente a solicitação correspondente às suas mensagens de log, por exemplo:

WARNING:2016-06-09 23:41:27,806:views:7449:140139847718656: No such object in the database: u'123'
[09/Jun/2016 23:41:27] "GET /api/game/123/ HTTP/1.1" 404 1735

Eu costumava trabalhar com uwsgi + nginx, então usei o manipulador de log 'console' para tudo e iniciei o uwsgi assim:

exec uwsgi --master --die-on-term --logto /var/log/uwsgi.log

Como resultado, obtive todo o logon necessário/var/log/uwsgi.log, os registros de solicitação do uwsgi e minhas próprias mensagens de log.

Agora eu quero alcançar o mesmo resultado com o Apache + mod WSGI + django. Quero que o único arquivo contenha todas as solicitações e todos os logs do meu aplicativo django em um só lugar.

Tentei fazer isso com a configuração de log do Django, mas mesmo quando redireciono o django.requests para o mesmo arquivo, recebo apenas minhas próprias mensagens nos logs, sem solicitações. Aqui está a parte da configuração:

'handlers': {
    'file_handler': {
        'level': DEBUG and 'DEBUG' or 'INFO',
        'class': 'logging.handlers.RotatingFileHandler',
        'filename': join(LOG_DIRECTORY, 'api_log.log'),
        'maxBytes': 1024 * 1024 * 5,  # 5 MB
        'backupCount': 15,
        'formatter': 'verbose',
    },
},
'loggers': {
    'api': {
        'handlers': ['file_handler'],
        'level': DEBUG and 'DEBUG' or 'INFO',
    },
    'django': {
        'handlers': ['file_handler'],
        'level': DEBUG and 'DEBUG' or 'INFO',
    },
    'django.request': {
        'handlers': ['file_handler'],
        'level': DEBUG and 'DEBUG' or 'INFO',
    },
    'django.db.backends': {
        'handlers': ['file_handler'],
        'level': DEBUG and 'INFO' or 'WARNING',
        'propagate': False,
    },
}

Existe uma maneira de obter o comportamento de registro nginx + uwsgi + django com apache + WSGI + django? Ou a única maneira é manter o apache access.log e meus logs em arquivos separados?

Eu acho que no primeiro caso, foi o servidor de desenvolvimento que registrou solicitações e, no segundo caso, foi um processo uwsgi. Talvez haja uma maneira de dizer ao WSGIDaemonProcess para fazer o mesmo?

questionAnswers(1)

yourAnswerToTheQuestion