定义日志类
  1. import logging
  2. import os
  3. import datetime
  4. class UserLog():
  5. def __init__(self):
  6. self.logger = logging.getLogger()
  7. self.logger.setLevel(logging.INFO)
  8. # 该文件所在的文件夹路径
  9. base_dir = os.path.dirname(os.path.abspath(__file__))
  10. log_dir = os.path.join(base_dir,"logs")
  11. # 以时间命名日志文件
  12. log_file = datetime.datetime.now().strftime('%Y-%m-%d') + '.log'
  13. log_name = log_dir + "/" + log_file
  14. print(log_name)
  15. # 文件输出日志
  16. self.file_handle = logging.FileHandler(log_name, 'a', encoding='utf-8')
  17. self.file_handle.setLevel(logging.INFO)
  18. # 定义写入的日志中包含的信息及格式
  19. formatter = logging.Formatter('%(asctime)s %(filename)s --> %(funcName)s %(levelno)s : %(levelname)s --> %(message)s')
  20. self.file_handle.setFormatter(formatter)
  21. self.logger.addHandler(self.file_handle)
  22. def get_log(self):
  23. return self.logger
  24. def close_handle(self):
  25. self.logger.removeHandler(self.file_handle)
  26. self.file_handle.close()
  27. if __name__ == "__main__":
  28. uesr_log = UserLog()
  29. log =uesr_log.get_log()
  30. log.debug("first log")
  31. uesr_log.close_handle()

定义完成后,在具体类中的使用

  1. class FirstCase(unittest.TestCase):
  2. # 在前置类方法中获取日志
  3. @classmethod
  4. def setUpClass(cls):
  5. cls.log = UserLog()
  6. cls.logger = cls.log.get_log()
  7. # 在类后置方法中关闭log
  8. @classmethod
  9. def tearDownClass(cls):
  10. cls.log.close_handle()
  11. def test_emali(self):
  12. pass