from flask import Flask, request from flask_cors import CORS from datetime import datetime import os import json import logging from .route.route import route_bp def create_app(): app = Flask(__name__) # CORS(app, supports_credentials=True) CORS(app, resources={r"/*": {"origins": "*"}}, supports_credentials=True) # CORS(app, resources={r"/*": {"origins": "*", "methods": "GET,POST,PUT,DELETE,OPTIONS"}}) # 允许所有源访问所有端点 # CORS(app, resources={r"/*": {"origins": ["http://111.8.143.97", "http://113.246.243.98"]}}, supports_credentials=True) app.register_blueprint(route_bp) # 创建日志文件夹 if not os.path.exists('/data/ww/py_sys_monitor/logs'): os.makedirs('/data/ww/py_sys_monitor/logs') # 配置日志记录 logging.basicConfig( filename='/data/ww/py_sys_monitor/logs/all.log', level=logging.INFO, format='%(asctime)s %(levelname)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) log_file_path = '/data/ww/py_sys_monitor/info/access_log' def log_request_response(response): response_data = response.get_json(silent=True) if "route.get_resource" == request.endpoint: return response elif "route.get_request_info" == request.endpoint: response_data = {} log_entry = { 'time': datetime.now().strftime('%Y-%m-%d %H:%M:%S'), 'endpoint': request.endpoint, 'method': request.method, 'url': request.url, 'remote_addr': request.remote_addr, 'request_json': {"args": request.args.to_dict(),"form": request.form.to_dict(),"json": request.get_json(silent=True)}, 'response_status': response.status, 'response_data': response_data } os.makedirs(os.path.dirname(log_file_path), exist_ok=True) with open(log_file_path, 'a') as log_file: log_file.write(json.dumps(log_entry) + "\n") return response app.after_request(log_request_response) return app