from flask import request, session import time from flask_security import current_user def log_request_middleware(app): # @app.before_request # def log_request_info(): # start_time = time.time() # app.logger.debug(f"Request URL: {request.url}") # app.logger.debug(f"Request Method: {request.method}") # app.logger.debug(f"Request Headers: {request.headers}") # app.logger.debug(f"Time taken for logging request info: {time.time() - start_time} seconds") # try: # app.logger.debug(f"Request Body: {request.get_data()}") # except Exception as e: # app.logger.error(f"Error reading request body: {e}") # app.logger.debug(f"Time taken for logging request body: {time.time() - start_time} seconds") # @app.before_request # def check_csrf_token(): # start_time = time.time() # if request.method == "POST": # csrf_token = request.form.get("csrf_token") # app.logger.debug(f"CSRF Token: {csrf_token}") # app.logger.debug(f"Time taken for logging CSRF token: {time.time() - start_time} seconds") # @app.before_request # def log_user_info(): # if current_user and current_user.is_authenticated: # app.logger.debug(f"Before: User ID: {current_user.id}") # app.logger.debug(f"Before: User Email: {current_user.email}") # app.logger.debug(f"Before: User Roles: {current_user.roles}") # else: # app.logger.debug("After: No user logged in") @app.before_request def log_session_state_before(): app.logger.debug(f'Session state before request: {session.items()}') # @app.after_request # def log_response_info(response): # start_time = time.time() # app.logger.debug(f"Response Status: {response.status}") # app.logger.debug(f"Response Headers: {response.headers}") # # app.logger.debug(f"Time taken for logging response info: {time.time() - start_time} seconds") # return response # @app.after_request # def log_user_after_request(response): # if current_user and current_user.is_authenticated: # app.logger.debug(f"After: User ID: {current_user.id}") # app.logger.debug(f"after: User Email: {current_user.email}") # app.logger.debug(f"After: User Roles: {current_user.roles}") # else: # app.logger.debug("After: No user logged in") @app.after_request def log_session_state_after(response): app.logger.debug(f'Session state after request: {session.items()}') return response