Files
BigDataTool/app.py
2025-08-04 09:14:27 +08:00

57 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
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)