Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. from uuid import uuid4
  2. from datetime import datetime
  3. import logging
  4.  
  5. from logging.handlers import TimedRotatingFileHandler
  6.  
  7. FORMAT = "[%(asctime)s] %(levelname)s %(message)s"
  8. formatter = logging.Formatter(FORMAT)
  9.  
  10. logger = logging.getLogger(__name__)
  11. logger.setLevel(logging.INFO)
  12.  
  13. fh = TimedRotatingFileHandler('aplygo.log'.format(datetime.now()), 'D')
  14. fh.setLevel(logging.INFO)
  15. fh.setFormatter(formatter)
  16.  
  17. fe = TimedRotatingFileHandler('aplygo.err'.format(datetime.now()), 'D')
  18. fe.setLevel(logging.WARNING)
  19. fe.setFormatter(formatter)
  20.  
  21. logger.addHandler(fh)
  22. logger.addHandler(fe)
  23.  
  24.  
  25. class LoggingMiddleware(object):
  26.  
  27. def __init__(self, get_response):
  28. self.get_response = get_response
  29.  
  30. def __call__(self, request):
  31. request.internal_operation_code = uuid4()
  32.  
  33. response = self.get_response(request)
  34.  
  35. status_code = response.status_code
  36. if status_code >= 500:
  37. level = logger.error
  38. elif status_code >= 400:
  39. level = logger.warning
  40. else:
  41. level = logger.info
  42. level("[{}] {} {} {}".format(request.user, request.method, request.path, status_code))
  43. return response
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement