2012-10-16 23:52:10 +02:00
|
|
|
import logging
|
2012-11-14 21:00:26 +01:00
|
|
|
import time
|
2012-10-16 23:52:10 +02:00
|
|
|
|
|
|
|
logger = logging.getLogger('humbug.requests')
|
|
|
|
|
|
|
|
class LogRequests(object):
|
2012-11-14 21:00:26 +01:00
|
|
|
def process_request(self, request):
|
|
|
|
request._time_started = time.time()
|
|
|
|
|
2012-10-16 23:52:10 +02:00
|
|
|
def process_response(self, request, response):
|
|
|
|
|
|
|
|
# The reverse proxy might have sent us the real external IP
|
|
|
|
remote_ip = request.META.get('HTTP_X_REAL_IP')
|
|
|
|
if remote_ip is None:
|
|
|
|
remote_ip = request.META['REMOTE_ADDR']
|
|
|
|
|
2012-11-14 21:00:26 +01:00
|
|
|
time_delta = -1
|
|
|
|
# A time duration of -1 means the StartLogRequests middleware
|
|
|
|
# didn't run for some reason
|
|
|
|
if hasattr(request, '_time_started'):
|
|
|
|
time_delta = time.time() - request._time_started
|
|
|
|
logger.info('%-15s %-7s %3d %.3fs %s'
|
|
|
|
% (remote_ip, request.method, response.status_code,
|
|
|
|
time_delta, request.get_full_path()))
|
2012-10-16 23:52:10 +02:00
|
|
|
return response
|