问题与this大致相同,但是我希望django将详细的请求信息记录到我的logging.FileHandler
- 也就是说,而不是必须查看我的网络服务器日志。我尝试过设置默认记录器django.requests
并尝试写入4xx和5xx以外的其他内容
向处理者请求信息。
因此,在完成文档和摆弄记录器和级别之后,我得出的结论是django实际上并没有做出很多日志声明 - 所以我想确认django是不会在内部记录请求的非错误情况。
答案 0 :(得分:18)
我不能说我做了详尽的搜索,但是从我在django 1.4.1的django/core/handlers/base.py
看到的情况来看,django.request
记录器确实只用于警告和错误条件(4xx) / 5XX)。
也就是说,编写将为您执行各种日志记录的中间件是微不足道的。让你入门非常简单的事情可能就是:
from time import time
from logging import getLogger
class LoggingMiddleware(object):
def __init__(self):
# arguably poor taste to use django's logger
self.logger = getLogger('django.request')
def process_request(self, request):
request.timer = time()
return None
def process_response(self, request, response):
self.logger.info(
'[%s] %s (%.1fs)',
response.status_code,
request.get_full_path(),
time() - request.timer
)
return response