# utils/logger.py import logging import os from logging.handlers import RotatingFileHandler from config.settings import LogConfig def setup_logger(): """设置日志""" # 获取日志配置 LOG_CONFIG = LogConfig.as_dict() # 创建日志目录 log_dir = os.path.dirname(LOG_CONFIG["file"]) if not os.path.exists(log_dir): os.makedirs(log_dir) # 设置日志级别 log_level = getattr(logging, LOG_CONFIG["level"].upper(), logging.INFO) # 设置日志格式 log_format = logging.Formatter(LOG_CONFIG["format"]) # 创建根日志记录器 root_logger = logging.getLogger() root_logger.setLevel(log_level) # 清除现有处理器 for handler in root_logger.handlers[:]: root_logger.removeHandler(handler) # 添加控制台处理器 console_handler = logging.StreamHandler() console_handler.setFormatter(log_format) root_logger.addHandler(console_handler) # 添加文件处理器 file_handler = RotatingFileHandler( LOG_CONFIG["file"], maxBytes=10 * 1024 * 1024, # 10MB backupCount=5 ) file_handler.setFormatter(log_format) root_logger.addHandler(file_handler) # 设置第三方库的日志级别 logging.getLogger("werkzeug").setLevel(logging.WARNING) logging.getLogger("urllib3").setLevel(logging.WARNING) return root_logger def get_logger(name): """ 获取指定名称的日志记录器 Args: name (str): 日志记录器名称,通常为模块名称 Returns: logging.Logger: 日志记录器实例 """ return logging.getLogger(name)