logger.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # import logging
  2. # # 配置日志器
  3. # logger = logging.getLogger(__name__)
  4. # logger.setLevel(logging.DEBUG)
  5. # formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  6. # fhandler = logging.FileHandler('livetalking.log') # 可以改为StreamHandler输出到控制台或多个Handler组合使用等。
  7. # fhandler.setFormatter(formatter)
  8. # fhandler.setLevel(logging.INFO)
  9. # logger.addHandler(fhandler)
  10. # # handler = logging.StreamHandler()
  11. # # handler.setLevel(logging.DEBUG)
  12. # # sformatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
  13. # # handler.setFormatter(sformatter)
  14. # # logger.addHandler(handler)
  15. import logging
  16. from logging.handlers import TimedRotatingFileHandler
  17. from pathlib import Path
  18. # 配置日志器(避免重复添加处理器)
  19. logger = logging.getLogger(__name__)
  20. logger.setLevel(logging.DEBUG) # 日志器级别设为 DEBUG
  21. logger.handlers.clear() # 清除已存在的处理器,避免重复输出
  22. # 定义格式化器
  23. formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  24. # 日志文件路径(放在项目根目录)
  25. LOG_PATH = Path(__file__).resolve().parent / "livetalking.log"
  26. # 1. 文件处理器:按天滚动,保留 3 天日志
  27. fhandler = TimedRotatingFileHandler(
  28. filename=str(LOG_PATH),
  29. when="midnight",
  30. interval=1,
  31. backupCount=3,
  32. encoding='utf-8',
  33. utc=False
  34. )
  35. fhandler.setFormatter(formatter)
  36. fhandler.setLevel(logging.DEBUG)
  37. logger.addHandler(fhandler)
  38. # 2. 控制台处理器(输出到终端,方便实时查看)
  39. shandler = logging.StreamHandler()
  40. shandler.setFormatter(formatter)
  41. shandler.setLevel(logging.DEBUG)
  42. logger.addHandler(shandler)