""" Creative Studio 日志配置 """ import logging import sys from pathlib import Path from logging.handlers import RotatingFileHandler from app.config import settings def setup_logging(): """配置应用日志""" # 创建日志目录 log_path = Path(settings.log_file) log_path.parent.mkdir(parents=True, exist_ok=True) # 配置根日志记录器 root_logger = logging.getLogger() root_logger.setLevel(getattr(logging, settings.log_level.upper())) # 清除现有处理器 root_logger.handlers.clear() # 日志格式 formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) # 控制台处理器 console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(logging.INFO) console_handler.setFormatter(formatter) root_logger.addHandler(console_handler) # 文件处理器(带轮转) file_handler = RotatingFileHandler( settings.log_file, maxBytes=10 * 1024 * 1024, # 10 MB backupCount=5, encoding='utf-8' ) file_handler.setLevel(getattr(logging, settings.log_level.upper())) file_handler.setFormatter(formatter) root_logger.addHandler(file_handler) def get_logger(name: str) -> logging.Logger: """ 获取日志记录器 Args: name: 日志记录器名称(通常使用 __name__) Returns: 配置好的日志记录器 """ return logging.getLogger(name) # 初始化日志 setup_logging()