log.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import logging
  2. import os
  3. from logging.handlers import RotatingFileHandler
  4. from setting import LOG_FILE, LOG_LEVEL, LOG_FORMAT, LOG_DIR
  5. class PPLogger(logging.Logger):
  6. def __init__(self, name, level=logging.NOTSET):
  7. super().__init__(name, level)
  8. def setup_logger(self, log_file=LOG_FILE, log_level=LOG_LEVEL, log_format=None, max_bytes=5 * 1024 * 1024,
  9. backup_count=5):
  10. # 设置日志格式
  11. if log_format is None:
  12. log_format = LOG_FORMAT
  13. formatter = logging.Formatter(log_format)
  14. # 设置日志级别
  15. self.setLevel(log_level)
  16. # 创建日志目录
  17. log_dir = LOG_DIR
  18. if not os.path.exists(log_dir):
  19. os.makedirs(log_dir)
  20. # 日志文件的路径
  21. log_path = os.path.join(log_dir, log_file)
  22. # 创建文件处理器
  23. file_handler = RotatingFileHandler(log_path, maxBytes=max_bytes, backupCount=backup_count)
  24. file_handler.setLevel(log_level)
  25. file_handler.setFormatter(formatter)
  26. # 添加处理器到日志器
  27. self.addHandler(file_handler)
  28. # 创建控制台处理器,并设置级别
  29. console_handler = logging.StreamHandler()
  30. console_handler.setLevel(log_level)
  31. console_handler.setFormatter(formatter)
  32. # 添加处理器到logger
  33. self.addHandler(console_handler)