""" 日志配置 - 管理端专用 """ import sys from pathlib import Path from loguru import logger as loguru_logger from app.config import settings # 创建日志目录 log_dir = Path("logs") log_dir.mkdir(exist_ok=True) # 移除默认处理器 loguru_logger.remove() # 控制台输出 loguru_logger.add( sys.stderr, format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", level=settings.LOG_LEVEL, colorize=True, ) # 默认文件输出 loguru_logger.add( log_dir / "app_{time:YYYY-MM-DD}.log", rotation="00:00", retention="30 days", format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", level="DEBUG", encoding="utf-8", ) # Admin接口专用文件 loguru_logger.add( log_dir / "admin_{time:YYYYMMDD}.log", rotation="00:00", retention="30 days", format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", level="DEBUG", encoding="utf-8", filter=lambda record: record["extra"].get("admin_interface") is True ) def setup_logger(): """设置日志""" return loguru_logger def get_admin_logger(): """获取admin接口专用logger""" return loguru_logger.bind(admin_interface=True) def get_logger_by_path(path: str): """ 根据请求路径返回对应的logger 管理端所有接口使用admin logger """ if path.startswith("/admin/"): return loguru_logger.bind(admin_interface=True) return loguru_logger logger = loguru_logger