local_log.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import sys
  2. from datetime import date, datetime
  3. from loguru import logger
  4. from pathlib import Path
  5. from config import settings
  6. class Local:
  7. """
  8. 恢复有效的本地日志记录器
  9. """
  10. @staticmethod
  11. def init_logger(platform: str, mode: str, log_level: str = settings.LOG_LEVEL,
  12. log_to_console: bool = False, rotation: str = "00:00",
  13. retention: str = "10 days"):
  14. """
  15. 初始化日志记录器 - 有效版本
  16. """
  17. # 创建日志目录
  18. log_path = Path(f"{settings.LOG_DIR}/{platform}")
  19. log_path.mkdir(parents=True, exist_ok=True)
  20. # 获取当前日期(动态)
  21. current_date = date.today().strftime("%Y-%m-%d")
  22. log_filename = f"{platform}-{mode}-{current_date}.log"
  23. log_file_path = log_path / log_filename
  24. # 清除默认 handler
  25. logger.remove()
  26. # 添加文件日志 handler
  27. logger.add(
  28. str(log_file_path), # 使用字符串路径
  29. level=log_level.upper(),
  30. rotation=rotation, # 支持rotation参数
  31. retention=retention,
  32. encoding="utf-8",
  33. enqueue=True
  34. )
  35. # 可选:输出到控制台
  36. if log_to_console:
  37. logger.add(
  38. sys.stdout,
  39. level=log_level.upper(),
  40. format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level}</level> | {message}"
  41. )
  42. return logger