logger_manager.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from typing import Any
  2. from core.utils.log.aliyun_log import AliyunLogger
  3. from core.utils.log.local_log import Local
  4. from loguru._logger import Logger as LoguruLogger
  5. class LoggerManager:
  6. """
  7. 日志管理器
  8. """
  9. _local_loggers: dict[str, LoguruLogger] = {}
  10. _aliyun_loggers: dict[str, AliyunLogger] = {}
  11. @staticmethod
  12. def get_logger(
  13. platform: str="system",
  14. mode: str="crawler",
  15. log_to_console: bool = False
  16. ) -> LoguruLogger:
  17. key = f"{platform}_{mode}"
  18. if key not in LoggerManager._local_loggers:
  19. LoggerManager._local_loggers[key] = Local.init_logger(
  20. platform=platform,
  21. mode=mode,
  22. log_to_console=log_to_console
  23. )
  24. return LoggerManager._local_loggers[key]
  25. @staticmethod
  26. def get_aliyun_logger(
  27. platform: str = "system",
  28. mode: str = "crawler",
  29. env: str = "prod"
  30. ) -> AliyunLogger:
  31. """
  32. :rtype: AliyunLogger
  33. """
  34. key = f"{platform}_{mode}"
  35. if key not in LoggerManager._aliyun_loggers:
  36. LoggerManager._aliyun_loggers[key] = AliyunLogger(
  37. platform=platform,
  38. mode=mode,
  39. env=env
  40. )
  41. return LoggerManager._aliyun_loggers[key]