logUtil.py 1.2 KB

123456789101112131415161718192021222324252627282930
  1. import logging
  2. from logging.handlers import RotatingFileHandler
  3. import os
  4. # 获取当前文件的绝对路径
  5. abs_path = os.path.abspath(__file__)
  6. # 获取文件所在目录
  7. directory = os.path.dirname(abs_path)
  8. class LogUtil:
  9. _instance = None # 私有类变量,用于存储唯一实例
  10. def __new__(cls):
  11. # 如果_instance为None,则创建一个新的实例
  12. if cls._instance is None:
  13. cls._instance = super(LogUtil, cls).__new__(cls)
  14. # 配置logging
  15. logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  16. # 创建logger对象
  17. cls._instance.logger = logging.getLogger('example_logger')
  18. # 创建一个FileHandler来输出所有级别的日志到指定文件
  19. log_file = r'{}/example.log'.format(directory)
  20. file_handler = logging.FileHandler(log_file)
  21. file_handler.setLevel(logging.DEBUG)
  22. file_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
  23. cls._instance.logger.addHandler(file_handler)
  24. return cls._instance
  25. def getLogger(self):
  26. return self.logger