def __call__(self, request): start = time.time() response = self.get_response(request) if not request.path.startswith('/admin'): diff = time.time() - start log = Log(path=request.path, method=request.method, execution_time_sec=diff) log.save() return response
def log_session_error(request, exception): # -- General info log = Log(exception_type=type(exception).__name__, message=exception.detail, stack_trace=traceback.format_exc()) log.request_url = request.get_full_path() log.request_method = request.method log.get_data = json.dumps(request.GET) log.post_data = json.dumps(request.POST) log.request_body = '{}' log.cookies = json.dumps(request.COOKIES) # --- Request meta info log.meta = ','.join('"%s": "%s"' % (k, str(v)) for k, v in request.META.items()) log.meta = '{%s}' % log.meta log.meta = log.meta.replace('\\', '|') # --- User info if request.user.is_authenticated(): log.user_id = request.user.id log.user_name = request.user.email # --- User agent info user_agent = request.user_agent # Browser log.request_browser = user_agent.browser # OS log.request_os = user_agent.os # Device log.request_device = user_agent.device # Device type log.is_mobile = user_agent.is_mobile log.is_tablet = user_agent.is_tablet log.is_touch_capable = user_agent.is_touch_capable log.is_pc = user_agent.is_pc log.is_bot = user_agent.is_bot # --- Save log.save() return None