You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
2.7 KiB

#!/usr/bin/env python3
"""
测试自动日志级别选择功能
"""
import sys
import os
# 添加项目根目录到Python路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from app.utils.structured_log import get_structured_logger
def test_auto_logging():
"""测试自动日志级别选择功能"""
print("=== 测试自动日志级别选择功能 ===")
# 测试自动获取默认级别
print("\n=== 测试自动获取默认级别 ===")
# 不指定级别,自动获取
auto_logger = get_structured_logger("app.test.auto")
print(f"自动级别日志记录器: {auto_logger.logger.level}")
auto_logger.debug("自动级别下的DEBUG日志", module="auto_test")
auto_logger.info("自动级别下的INFO日志", module="auto_test")
auto_logger.warning("自动级别下的WARNING日志", module="auto_test")
auto_logger.error("自动级别下的ERROR日志", module="auto_test")
# 测试不同模块的自动级别
print("\n=== 测试不同模块的自动级别 ===")
# WebSocket模块
websocket_logger = get_structured_logger("app.core.websocket.client")
print(f"WebSocket模块级别: {websocket_logger.logger.level}")
websocket_logger.debug("WebSocket模块DEBUG日志", module="websocket")
websocket_logger.info("WebSocket模块INFO日志", module="websocket")
# ADB服务模块
adb_logger = get_structured_logger("app.services.adb_service")
print(f"ADB服务模块级别: {adb_logger.logger.level}")
adb_logger.debug("ADB服务模块DEBUG日志", module="adb_service")
adb_logger.info("ADB服务模块INFO日志", module="adb_service")
# 设备服务模块
device_logger = get_structured_logger("app.services.device_service")
print(f"设备服务模块级别: {device_logger.logger.level}")
device_logger.debug("设备服务模块DEBUG日志", module="device_service")
device_logger.info("设备服务模块INFO日志", module="device_service")
# 测试异常日志
print("\n=== 测试异常日志 ===")
try:
raise ValueError("这是一个测试异常")
except Exception as e:
auto_logger.exception("捕获到异常", exception_info=str(e))
print("\n=== 测试完成 ===")
print("请检查以下文件:")
print("- logs/app.log (包含所有日志)")
print("- logs/error.log (只包含错误日志)")
print("- 控制台输出 (实时显示)")
print("\n说明:")
print("- 自动级别根据环境配置自动选择")
print("- 开发环境默认为DEBUG级别")
print("- 生产环境默认为INFO级别")
print("- 系统统一管理,不允许单个文件自定义级别")
if __name__ == "__main__":
test_auto_logging()