__init__.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. """
  2. Data Pipeline 统一日志管理
  3. 支持API和命令行两种模式
  4. """
  5. from core.logging import get_data_pipeline_logger, initialize_logging
  6. import os
  7. import logging
  8. import logging.handlers
  9. from pathlib import Path
  10. def init_data_pipeline_logging():
  11. """初始化data_pipeline日志系统"""
  12. # 确保日志系统已初始化
  13. initialize_logging()
  14. def get_logger(name: str, task_id: str = None):
  15. """
  16. 获取data_pipeline专用logger
  17. Args:
  18. name: logger名称
  19. task_id: 任务ID(可选,用于任务特定日志)
  20. Returns:
  21. 配置好的logger实例
  22. """
  23. logger = get_data_pipeline_logger(name)
  24. # 如果提供了task_id,添加任务特定的文件处理器
  25. if task_id:
  26. # 创建任务特定的日志文件
  27. task_log_file = Path(f"data_pipeline/training_data/{task_id}/data_pipeline.log")
  28. task_log_file.parent.mkdir(parents=True, exist_ok=True)
  29. # 创建任务特定的文件处理器(支持滚动)
  30. task_handler = logging.handlers.RotatingFileHandler(
  31. task_log_file,
  32. maxBytes=10*1024*1024, # 10MB
  33. backupCount=3,
  34. encoding='utf-8'
  35. )
  36. task_handler.setLevel(logging.DEBUG)
  37. formatter = logging.Formatter(
  38. '%(asctime)s [%(levelname)s] [%(name)s] %(filename)s:%(lineno)d - %(message)s',
  39. datefmt='%Y-%m-%d %H:%M:%S'
  40. )
  41. task_handler.setFormatter(formatter)
  42. # 添加到logger
  43. logger.addHandler(task_handler)
  44. return logger