test_singleton.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. 单例模式测试脚本
  5. 验证LoggerTool是否正确实现了单例模式
  6. """
  7. import sys
  8. import os
  9. # 添加项目根目录到 Python 路径
  10. current_dir = os.path.dirname(os.path.abspath(__file__))
  11. sys.path.append(current_dir)
  12. from kodi_util.LoggerToolModule import LoggerTool
  13. def test_singleton():
  14. """测试单例模式"""
  15. print("开始测试单例模式...")
  16. # 创建第一个实例
  17. logger1 = LoggerTool(name='logger1', log_file='test1.log', log_dir='logs')
  18. print(f"第一个实例ID: {id(logger1)}")
  19. # 创建第二个实例(应该是同一个对象)
  20. logger2 = LoggerTool(name='logger2', log_file='test2.log', log_dir='logs')
  21. print(f"第二个实例ID: {id(logger2)}")
  22. # 创建第三个实例(应该是同一个对象)
  23. logger3 = LoggerTool(name='logger3', log_file='test3.log', log_dir='logs')
  24. print(f"第三个实例ID: {id(logger3)}")
  25. # 验证是否是同一个对象
  26. print(f"logger1 is logger2: {logger1 is logger2}")
  27. print(f"logger2 is logger3: {logger2 is logger3}")
  28. print(f"logger1 is logger3: {logger1 is logger3}")
  29. # 测试日志记录
  30. logger1.info("来自logger1的消息")
  31. logger2.info("来自logger2的消息")
  32. logger3.info("来自logger3的消息")
  33. print("单例模式测试完成!")
  34. print("注意:由于是单例模式,只有第一次创建时的参数(name='logger1', log_file='test1.log')会生效")
  35. print("所有日志都会写入到 logs/test1.log 文件中")
  36. if __name__ == "__main__":
  37. test_singleton()