"""日志管理模块""" import os import logging from logging.handlers import TimedRotatingFileHandler def setup_logging( log_dir: str = "log", log_file: str = "app.log", level: int = logging.INFO, format_string: str = '%(asctime)s - %(levelname)s - %(message)s', when: str = "H", interval: int = 12, backup_count: int = 7 ) -> None: """ 配置日志系统 Args: log_dir: 日志目录 log_file: 日志文件名 level: 日志级别 format_string: 日志格式 when: 轮转时间单位 (S:秒, M:分, H:时, D:天, W:周) interval: 轮转间隔 backup_count: 保留的备份文件数量 """ # 确保日志目录存在 if not os.path.exists(log_dir): os.makedirs(log_dir) # 配置日志处理器 handlers = [ TimedRotatingFileHandler( os.path.join(log_dir, log_file), when=when, interval=interval, backupCount=backup_count, encoding='utf-8' ), logging.StreamHandler() ] # 配置日志 logging.basicConfig( level=level, format=format_string, handlers=handlers ) def get_logger(name: str) -> logging.Logger: """ 获取日志记录器 Args: name: 日志记录器名称,通常使用 __name__ Returns: Logger 实例 """ return logging.getLogger(name)