Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. # coding: utf-8
  2. import logging
  3. import time
  4.  
  5. elapsed_logger = logging.getLogger("elapsed_logger")
  6.  
  7.  
  8. class ElapsedMiddleware(object):
  9. def __init__(self):
  10. self.pstart_time = time.time()
  11.  
  12. def process_request(self, request):
  13. self._reset()
  14. self._body_to_log = request.body
  15.  
  16. def process_view(self, request, callback, callback_args, callback_kwargs):
  17. try:
  18. view_name = callback.func_name # If it's a function
  19. except AttributeError:
  20. view_name = callback.__class__.__name__ + '.__call__' # If it's a class
  21.  
  22. self.view_name = "%s.%s" % (callback.__module__, view_name)
  23.  
  24. def process_response(self, request, response):
  25. if 200 <= response.status_code < 500:
  26. info = "Time Elapsed: %.6fs status_code:%s method:%s view:%s, path:%s get:%s post:%s user_id: %s" % (
  27. (time.time() - self.pstart_time),
  28. response.status_code,
  29. request.method,
  30. self.view_name,
  31. request.path,
  32. request.META.get('QUERY_STRING', ''),
  33. self._body_to_log,
  34. request.user.id if request.user.is_authenticated() else 'none'
  35. )
  36. elapsed_logger.info(info)
  37. self._reset()
  38. return response
  39.  
  40. def _reset(self):
  41. self.view_name = ""
  42. self.pstart_time = time.time()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement