test_logging.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. 日志系统测试脚本
  5. 用于验证日志服务改造是否成功
  6. """
  7. import os
  8. import sys
  9. import time
  10. from pathlib import Path
  11. # 添加项目根目录到Python路径
  12. project_root = Path(__file__).parent
  13. sys.path.insert(0, str(project_root))
  14. def test_logging_system():
  15. """测试日志系统的各个功能"""
  16. print("=" * 60)
  17. print("开始测试日志系统...")
  18. print("=" * 60)
  19. # 1. 测试日志系统初始化
  20. try:
  21. from core.logging import initialize_logging, get_app_logger, get_agent_logger, get_vanna_logger, get_data_pipeline_logger
  22. from core.logging import set_log_context, clear_log_context
  23. # 初始化日志系统
  24. initialize_logging()
  25. print("✅ 日志系统初始化成功")
  26. except Exception as e:
  27. print(f"❌ 日志系统初始化失败: {e}")
  28. return
  29. # 2. 测试各模块的logger
  30. print("\n测试各模块的logger...")
  31. # App模块
  32. try:
  33. app_logger = get_app_logger("TestApp")
  34. app_logger.info("这是App模块的测试日志")
  35. app_logger.warning("这是App模块的警告日志")
  36. app_logger.error("这是App模块的错误日志")
  37. print("✅ App模块logger测试成功")
  38. except Exception as e:
  39. print(f"❌ App模块logger测试失败: {e}")
  40. # Agent模块
  41. try:
  42. agent_logger = get_agent_logger("TestAgent")
  43. agent_logger.info("这是Agent模块的测试日志")
  44. agent_logger.debug("这是Agent模块的调试日志")
  45. print("✅ Agent模块logger测试成功")
  46. except Exception as e:
  47. print(f"❌ Agent模块logger测试失败: {e}")
  48. # Vanna模块
  49. try:
  50. vanna_logger = get_vanna_logger("TestVanna")
  51. vanna_logger.info("这是Vanna模块的测试日志")
  52. vanna_logger.warning("这是Vanna模块的警告日志")
  53. print("✅ Vanna模块logger测试成功")
  54. except Exception as e:
  55. print(f"❌ Vanna模块logger测试失败: {e}")
  56. # Data Pipeline模块
  57. try:
  58. dp_logger = get_data_pipeline_logger("TestDataPipeline")
  59. dp_logger.info("这是Data Pipeline模块的测试日志")
  60. dp_logger.error("这是Data Pipeline模块的错误日志")
  61. print("✅ Data Pipeline模块logger测试成功")
  62. except Exception as e:
  63. print(f"❌ Data Pipeline模块logger测试失败: {e}")
  64. # 3. 测试上下文功能
  65. print("\n测试上下文功能...")
  66. try:
  67. # 设置上下文
  68. set_log_context(user_id="test_user_123", session_id="session_456")
  69. app_logger.info("这是带上下文的日志")
  70. # 清除上下文
  71. clear_log_context()
  72. app_logger.info("这是清除上下文后的日志")
  73. print("✅ 上下文功能测试成功")
  74. except Exception as e:
  75. print(f"❌ 上下文功能测试失败: {e}")
  76. # 4. 检查日志文件
  77. print("\n检查日志文件...")
  78. log_dir = Path("logs")
  79. expected_files = ["app.log", "agent.log", "vanna.log", "data_pipeline.log"]
  80. if log_dir.exists():
  81. print(f"日志目录: {log_dir.absolute()}")
  82. for log_file in expected_files:
  83. file_path = log_dir / log_file
  84. if file_path.exists():
  85. size = file_path.stat().st_size
  86. print(f"✅ {log_file} - 大小: {size} bytes")
  87. # 显示最后几行日志
  88. try:
  89. with open(file_path, 'r', encoding='utf-8') as f:
  90. lines = f.readlines()
  91. if lines:
  92. print(f" 最新日志: {lines[-1].strip()}")
  93. except Exception as e:
  94. print(f" 读取日志失败: {e}")
  95. else:
  96. print(f"❌ {log_file} - 文件不存在")
  97. else:
  98. print(f"❌ 日志目录不存在: {log_dir}")
  99. print("\n" + "=" * 60)
  100. print("日志系统测试完成!")
  101. print("=" * 60)
  102. if __name__ == "__main__":
  103. test_logging_system()