logging.py 1020 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. """
  2. 日志配置工具
  3. 提供统一的日志配置方法。
  4. """
  5. import logging
  6. from typing import Optional
  7. def setup_logging(
  8. level: str = "INFO",
  9. format: Optional[str] = None,
  10. file: Optional[str] = None
  11. ):
  12. """
  13. 配置日志系统
  14. Args:
  15. level: 日志级别(DEBUG, INFO, WARNING, ERROR, CRITICAL)
  16. format: 日志格式(None 使用默认格式)
  17. file: 日志文件路径(None 只输出到控制台)
  18. """
  19. log_level = getattr(logging, level.upper(), logging.INFO)
  20. log_format = format or "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
  21. handlers = [logging.StreamHandler()]
  22. if file:
  23. handlers.append(logging.FileHandler(file, encoding="utf-8"))
  24. logging.basicConfig(
  25. level=log_level,
  26. format=log_format,
  27. handlers=handlers,
  28. force=True
  29. )
  30. # 设置第三方库日志级别
  31. logging.getLogger("httpx").setLevel(logging.WARNING)
  32. logging.getLogger("httpcore").setLevel(logging.WARNING)