34 lines
1.4 KiB
Python
34 lines
1.4 KiB
Python
from flask import request
|
|
import time
|
|
|
|
|
|
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.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 |