Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: utf-8
- import logging
- import time
- elapsed_logger = logging.getLogger("elapsed_logger")
- class ElapsedMiddleware(object):
- def __init__(self):
- self.pstart_time = time.time()
- def process_request(self, request):
- self._reset()
- self._body_to_log = request.body
- def process_view(self, request, callback, callback_args, callback_kwargs):
- try:
- view_name = callback.func_name # If it's a function
- except AttributeError:
- view_name = callback.__class__.__name__ + '.__call__' # If it's a class
- self.view_name = "%s.%s" % (callback.__module__, view_name)
- def process_response(self, request, response):
- if 200 <= response.status_code < 500:
- info = "Time Elapsed: %.6fs status_code:%s method:%s view:%s, path:%s get:%s post:%s user_id: %s" % (
- (time.time() - self.pstart_time),
- response.status_code,
- request.method,
- self.view_name,
- request.path,
- request.META.get('QUERY_STRING', ''),
- self._body_to_log,
- request.user.id if request.user.is_authenticated() else 'none'
- )
- elapsed_logger.info(info)
- self._reset()
- return response
- def _reset(self):
- self.view_name = ""
- self.pstart_time = time.time()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement