import logging import os from datetime import datetime from logging.handlers import TimedRotatingFileHandler from app.config import LOG_LEVEL, LOG_DIR # 确保日志目录存在 os.makedirs(LOG_DIR, exist_ok=True) def setup_logger(name: str) -> logging.Logger: """设置日志记录器""" logger = logging.getLogger(name) logger.setLevel(getattr(logging, LOG_LEVEL)) # 避免重复添加处理器 if logger.handlers: return logger # 日志格式 formatter = logging.Formatter( "[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s", datefmt="%Y-%m-%d %H:%M:%S" ) # 控制台处理器 console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) logger.addHandler(console_handler) # 文件处理器(按日期分割) log_file = os.path.join(LOG_DIR, "app.log") file_handler = TimedRotatingFileHandler( log_file, when="midnight", interval=1, backupCount=30, encoding="utf-8" ) file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger # 创建日志记录器 logger = setup_logger("app")