from flask import Flask, request from datetime import datetime import os import json import logging from .route.route import route_bp def create_app(): app = Flask(__name__) 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): 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_args': request.args.to_dict(), 'request_form': request.form.to_dict(), 'request_json': request.get_json(), 'response_status': response.status, 'response_data': response.get_json() } 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