import logging import sys import os from typing import Optional from app.core.config import config from app.utils.structured_log import get_structured_logger, LogLevel def get_logger(name: str, level: Optional[str] = None) -> logging.Logger: """获取传统日志记录器(向后兼容)""" logger = logging.getLogger(name) # 设置日志级别 log_level = level or config.adb.log_level logger.setLevel(getattr(logging, log_level.upper())) # 如果已经有处理器,直接返回 if logger.handlers: return logger # 创建控制台处理器 console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(getattr(logging, log_level.upper())) # 创建格式化器 formatter = logging.Formatter( config.adb.log_format, datefmt='%Y-%m-%d %H:%M:%S' ) console_handler.setFormatter(formatter) # 添加处理器 logger.addHandler(console_handler) # 确保日志目录存在 os.makedirs("logs", exist_ok=True) # 添加文件处理器 try: file_handler = logging.FileHandler(f"logs/{name}.log", encoding='utf-8') file_handler.setLevel(getattr(logging, log_level.upper())) file_handler.setFormatter(formatter) logger.addHandler(file_handler) except Exception as e: logger.error(f"创建日志文件处理器失败: {e}") return logger def get_enhanced_logger(name: str, level: LogLevel = LogLevel.INFO): """获取增强的结构化日志记录器""" return get_structured_logger(name, level) # 创建默认日志记录器 default_logger = get_logger("TermControlAgent") enhanced_logger = get_enhanced_logger("TermControlAgent")