local_log.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from datetime import date, timedelta
  2. from datetime import datetime
  3. from loguru import logger
  4. import os
  5. proxies = {"http": None, "https": None}
  6. class Local(object):
  7. # 统一获取当前时间 <class 'datetime.datetime'> 2022-04-14 20:13:51.244472
  8. now = datetime.now()
  9. # 昨天 <class 'str'> 2022-04-13
  10. yesterday = (date.today() + timedelta(days=-1)).strftime("%Y-%m-%d")
  11. # 今天 <class 'datetime.date'> 2022-04-14
  12. today = date.today()
  13. # 明天 <class 'str'> 2022-04-15
  14. tomorrow = (date.today() + timedelta(days=1)).strftime("%Y-%m-%d")
  15. # 使用 logger 模块生成日志
  16. @staticmethod
  17. def logger(platform, mode):
  18. """
  19. 使用 logger 模块生成日志
  20. """
  21. # 日志路径
  22. log_dir = f"./log_store/{platform}/"
  23. log_path = os.getcwd() + os.sep + log_dir
  24. if not os.path.isdir(log_path):
  25. os.makedirs(log_path)
  26. # 日志文件名
  27. # log_name = time.strftime("%Y-%m-%d", time.localtime(time.time())) + f'-{crawler}-{log_type}.log'
  28. # log_name = datetime.datetime.now().strftime('%Y-%m-%d') + f'-{crawler}-{log_type}.log'
  29. # log_name = f"{date.today():%Y-%m-%d}-{crawler}-{log_type}.log"
  30. log_name = f"{platform}-{mode}-{datetime.now().date().strftime('%Y-%m-%d')}.log"
  31. # 日志不打印到控制台
  32. logger.remove(handler_id=None)
  33. # rotation="500 MB",实现每 500MB 存储一个文件
  34. # rotation="12:00",实现每天 12:00 创建一个文件
  35. # rotation="1 week",每周创建一个文件
  36. # retention="10 days",每隔10天之后就会清理旧的日志
  37. # 初始化日志
  38. # logger.add(f"{log_dir}{log_name}", level="INFO", rotation="00:00", retention="10 days", enqueue=True)
  39. logger.add(os.path.join(log_dir, log_name), level="INFO", rotation="00:00", retention="10 days", enqueue=True)
  40. return logger