log.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # -*- coding: utf-8 -*-
  2. # @Author: wangkun
  3. # @Time: 2023/7/3
  4. import os
  5. import logging
  6. from datetime import time, date
  7. from logging.handlers import TimedRotatingFileHandler
  8. class Log:
  9. logger = None
  10. handler = None
  11. @classmethod
  12. def logging(cls, log_type, crawler):
  13. # 日志路径
  14. log_dir = f"./{crawler}/logs/"
  15. log_path = os.getcwd() + os.sep + log_dir
  16. if not os.path.isdir(log_path):
  17. os.makedirs(log_path)
  18. # 日志文件名
  19. log_name = f"{date.today()}-{crawler}-{log_type}.log"
  20. if cls.logger is None:
  21. cls.logger = logging.getLogger(__name__)
  22. cls.logger.setLevel(logging.INFO)
  23. if cls.handler is None:
  24. cls.handler = TimedRotatingFileHandler(
  25. os.path.join(log_path, log_name),
  26. when="midnight",
  27. interval=1,
  28. atTime=time(hour=0, minute=0, second=0),
  29. backupCount=20) # 设置保留的日志文件数量
  30. formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(filename)s - line %(lineno)d - %(message)s')
  31. cls.handler.setFormatter(formatter)
  32. cls.logger.addHandler(cls.handler)
  33. return cls.logger
  34. if __name__ == "__main__":
  35. Log.log()