import time from flask import request, g, jsonify, make_response,current_app from common.log import logger from datetime import datetime # 定义生成失败响应的函数 def fail_response(code, error_message): return { "Timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")[:-3], "Result": { "Status": "failed", "Code": code, "Message": error_message } } # 定义生成成功响应的函数 def success_response(data): return { "Timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")[:-3], "Data": data, "Result": { "Status": "succeed", "Code": 200, "Message": "请求成功!" } } def before_request(): logger.info(f"请求: {request.method} {request.url} ") g.start_time = time.time() def after_request(response): elapsed_time = time.time() - g.start_time logger.info(f'响应: 用了 {elapsed_time:.4f} 秒') # return response if response.status_code >= 400: # 失败响应 error_message = response.get_json(silent=True)['message'] json_response = make_response(jsonify(fail_response(response.status_code, error_message)), response.status_code) else: # 成功响应 data = response.get_json(silent=True) json_response = make_response(jsonify(success_response(data)), response.status_code) json_response.headers['X-Processed-Time'] = g.get('start_time', 'unknown') return json_response def handle_exception(error): logger.error(f'发生异常: {error}') # response = jsonify({'error': str(error)}) response = jsonify({'message': str(error)}) response.status_code = 500 return response