""" 日志工具 """ import logging import sys from typing import Optional def setup_logger( name: str = "FineTuneX", level: int = logging.INFO, log_file: Optional[str] = None, ) -> logging.Logger: """ 设置日志记录器 Args: name: 记录器名称 level: 日志级别 log_file: 日志文件路径(可选) Returns: 日志记录器 """ logger = logging.getLogger(name) logger.setLevel(level) # 清除现有的 handlers logger.handlers = [] # 创建 formatter formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) # 控制台 handler console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(level) console_handler.setFormatter(formatter) logger.addHandler(console_handler) # 文件 handler(可选) if log_file: file_handler = logging.FileHandler(log_file, encoding="utf-8") file_handler.setLevel(level) file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger