123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- import os
- import logging
- from dataclasses import dataclass, asdict
- from utils.logUtil import LogUtil
- from utils.config_loader import ConfigLoader
- # 简化版的GetLogger实现
- def GetLogger(name='default'):
- """返回配置好的日志器"""
- logger = LogUtil.get_logger(name)
- return logger
- @dataclass
- class DatabaseConfig:
- type: str
- url: str
- timeout: int
- poolSize: int
- maxPoolSize: int
- minPoolSize: int
- maxIdleTime: int
- @dataclass
- class MinioConfig:
- endpoint: str
- accessKey: str
- secretKey: str
- secure: bool
- poolSize: int
- timeout: int
- @dataclass
- class LoggingConfig:
- logFilePath: str
- maxFileSize: int
- maxTotalSize: int
- backupCount: int
- logFormat: str
- level: str
- @dataclass
- class AppConfig:
- databaseConfig: dict
- minioConfig: MinioConfig
- loggingConfig: LoggingConfig
- @staticmethod
- def load_from_file(file_path: str):
- try:
- # 确保使用正确的配置加载方法
- config_data = ConfigLoader.load_config(file_path)
- database_config = config_data.get('databaseConfig', {})
- minio_config = MinioConfig(**config_data.get('minioConfig', {}))
- logging_config = LoggingConfig(**config_data.get('loggingConfig', {}))
- return AppConfig(
- databaseConfig=database_config,
- minioConfig=minio_config,
- loggingConfig=logging_config
- )
- except Exception as e:
- print(f"加载配置文件失败: {e}")
- # 返回默认配置
- return AppConfig(
- databaseConfig={},
- minioConfig=MinioConfig(None, None, None, False, 5, 30),
- loggingConfig=LoggingConfig('log/app.log', 10485760, 104857600, 5, '%(asctime)s - %(levelname)s - %(message)s', 'INFO')
- )
- def GetDbUtil():
- """获取数据库工具实例"""
- from utils.rdbmsUtil import RdbmsUtil # 延迟导入避免循环依赖
-
- try:
- # 从配置中获取数据库连接参数
- db_config = config.databaseConfig
- if not db_config:
- raise ValueError("数据库配置未加载")
-
- return RdbmsUtil(
- db_type=db_config.get('type'),
- db_url=db_config.get('url'),
- timeout=db_config.get('timeout', 30),
- pool_size=db_config.get('poolSize', 5)
- )
- except Exception as e:
- logger = GetLogger()
- logger.error(f"创建数据库工具失败: {e}")
- return None
- def GetMinIOUtil():
- """获取MinIO工具实例"""
- from utils.minioUtil import MinioUtil # 延迟导入避免循环依赖
-
- try:
- # 从配置中获取MinIO连接参数
- minio_config = config.minioConfig
- if not minio_config.endpoint:
- raise ValueError("MinIO配置不完整")
-
- return MinioUtil(
- endpoint=minio_config.endpoint,
- access_key=minio_config.accessKey,
- secret_key=minio_config.secretKey,
- secure=minio_config.secure,
- pool_size=minio_config.poolSize,
- timeout=minio_config.timeout
- )
- except Exception as e:
- logger = GetLogger()
- logger.error(f"创建MinIO工具失败: {e}")
- return None
- # 默认配置 - 添加错误处理
- try:
- config = AppConfig.load_from_file(os.path.join(os.path.dirname(__file__), '..', 'conf', 'appConfig.json'))
- except Exception as e:
- print(f"加载默认配置失败: {e}")
- # 使用硬编码的默认配置
- config = AppConfig(
- databaseConfig={},
- minioConfig=MinioConfig(None, None, None, False, 5, 30),
- loggingConfig=LoggingConfig('log/app.log', 10485760, 104857600, 5, '%(asctime)s - %(levelname)s - %(message)s', 'INFO')
- )
- # 使用示例
- logger = GetLogger()
- logger.info("Application configuration loaded successfully.")
|