""" BigDataTool - 主应用文件 模块化重构后的主应用,使用分离的模块组织代码 """ import logging from flask import Flask # 导入模块 from modules.database import ensure_database from modules.query_logger import QueryLogCollector, CollectorHandler from modules.api_routes import setup_routes # 创建Flask应用 app = Flask(__name__) # 配置日志 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) logger = logging.getLogger(__name__) # 确保数据库存在 if not ensure_database(): logger.error("数据库初始化失败,应用可能无法正常工作") else: logger.info("数据库初始化成功") # 创建查询日志收集器 query_log_collector = QueryLogCollector() # 设置日志处理器,将应用日志记录到查询日志中 collector_handler = CollectorHandler(query_log_collector) collector_handler.setLevel(logging.INFO) # 为特定的logger添加收集器 cassandra_logger = logging.getLogger('modules.cassandra_client') query_logger = logging.getLogger('modules.query_engine') comparison_logger = logging.getLogger('modules.data_comparison') sharding_logger = logging.getLogger('modules.sharding') cassandra_logger.addHandler(collector_handler) query_logger.addHandler(collector_handler) comparison_logger.addHandler(collector_handler) sharding_logger.addHandler(collector_handler) # 设置所有路由 setup_routes(app, query_log_collector) if __name__ == '__main__': logger.info("=== BigDataTool 启动 ===") logger.info("应用架构:模块化") logger.info("支持功能:单表查询、分表查询、多主键查询、配置管理、查询历史") logger.info("访问地址:http://localhost:5001") logger.info("API文档:/api/* 路径下的所有端点") app.run(debug=True, port=5001)