import sys
from datetime import date, datetime
from loguru import logger
from pathlib import Path
from config import settings
class Local:
"""
恢复有效的本地日志记录器
"""
@staticmethod
def init_logger(platform: str, mode: str, log_level: str = settings.LOG_LEVEL,
log_to_console: bool = False, rotation: str = "00:00",
retention: str = "10 days"):
"""
初始化日志记录器 - 有效版本
"""
# 创建日志目录
log_path = Path(f"{settings.LOG_DIR}/{platform}")
log_path.mkdir(parents=True, exist_ok=True)
# 获取当前日期(动态)
current_date = date.today().strftime("%Y-%m-%d")
log_filename = f"{platform}-{mode}-{current_date}.log"
log_file_path = log_path / log_filename
# 清除默认 handler
logger.remove()
# 添加文件日志 handler
logger.add(
str(log_file_path), # 使用字符串路径
level=log_level.upper(),
rotation=rotation, # 支持rotation参数
retention=retention,
encoding="utf-8",
enqueue=True
)
# 可选:输出到控制台
if log_to_console:
logger.add(
sys.stdout,
level=log_level.upper(),
format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}"
)
return logger