138 lines
3.9 KiB
Python
138 lines
3.9 KiB
Python
|
#!/usr/bin/env python3
|
|||
|
# -*- coding: utf-8 -*-
|
|||
|
"""
|
|||
|
日志系统测试 - 演示基本日志功能
|
|||
|
"""
|
|||
|
|
|||
|
import time
|
|||
|
import sys
|
|||
|
import os
|
|||
|
import random
|
|||
|
|
|||
|
# 添加父目录到路径,以便能够导入utils
|
|||
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|||
|
|
|||
|
from utils.log_helper import (
|
|||
|
LogHelper, get_logger, section, info, debug, warning, error, success, timing,
|
|||
|
table, progress, syntax, json_log, panel
|
|||
|
)
|
|||
|
|
|||
|
def test_basic_logs():
|
|||
|
"""测试基本日志功能"""
|
|||
|
section("基本日志测试", "测试")
|
|||
|
|
|||
|
# 测试各种日志级别
|
|||
|
debug("这是一条调试信息", "调试")
|
|||
|
info("这是一条普通信息", "信息")
|
|||
|
warning("这是一条警告信息", "警告")
|
|||
|
error("这是一条错误信息", "错误")
|
|||
|
success("这是一条成功信息", "成功")
|
|||
|
|
|||
|
# 测试不带emoji的日志
|
|||
|
info("这是一条没有emoji的普通信息")
|
|||
|
warning("这是一条没有emoji的警告信息")
|
|||
|
|
|||
|
# 测试计时功能
|
|||
|
start_time = time.time()
|
|||
|
time.sleep(0.5) # 模拟耗时操作
|
|||
|
elapsed = time.time() - start_time
|
|||
|
timing("耗时操作", elapsed)
|
|||
|
|
|||
|
def test_rich_features():
|
|||
|
"""测试Rich库的高级功能"""
|
|||
|
section("Rich功能测试", "测试")
|
|||
|
|
|||
|
# 测试表格
|
|||
|
columns = ["参数", "数值", "状态", "备注"]
|
|||
|
rows = [
|
|||
|
["电池电量", "85%", "正常", ""],
|
|||
|
["系统温度", "32.5°C", "正常", ""],
|
|||
|
["CPU负载", "15%", "正常", ""],
|
|||
|
["内存使用", "45%", "正常", ""],
|
|||
|
]
|
|||
|
|
|||
|
table("系统状态", columns, rows, "当前系统状态指标")
|
|||
|
|
|||
|
# 测试进度条
|
|||
|
items = list(range(10))
|
|||
|
for item in progress(items, "处理数据", unit="项"):
|
|||
|
time.sleep(0.1) # 模拟处理时间
|
|||
|
|
|||
|
# 测试代码高亮
|
|||
|
code = """
|
|||
|
def hello_robot(name):
|
|||
|
\"\"\"向机器人问好\"\"\"
|
|||
|
print(f"Hello, {name}!")
|
|||
|
return f"Robot {name} is now active"
|
|||
|
|
|||
|
# 调用函数
|
|||
|
result = hello_robot("MI-1")
|
|||
|
"""
|
|||
|
syntax(code, "python", "示例代码")
|
|||
|
|
|||
|
# 测试JSON美化
|
|||
|
data = {
|
|||
|
"robot": {
|
|||
|
"name": "MI-Explorer",
|
|||
|
"type": "四足机器人",
|
|||
|
"sensors": ["相机", "IMU", "里程计"],
|
|||
|
"position": {"x": 1.2, "y": 3.4, "z": 0.0},
|
|||
|
"status": "运行中"
|
|||
|
},
|
|||
|
"tasks": [
|
|||
|
{"id": 1, "name": "探索", "status": "完成"},
|
|||
|
{"id": 2, "name": "导航", "status": "进行中"},
|
|||
|
{"id": 3, "name": "抓取", "status": "等待"}
|
|||
|
]
|
|||
|
}
|
|||
|
json_log(data, "机器人状态数据")
|
|||
|
|
|||
|
# 测试面板
|
|||
|
panel(
|
|||
|
"系统诊断结果:\n"
|
|||
|
"- 所有子系统工作正常\n"
|
|||
|
"- 电池电量: 85%\n"
|
|||
|
"- 软件版本: v1.2.5\n"
|
|||
|
"- 运行时间: 2小时35分钟",
|
|||
|
"诊断结果",
|
|||
|
"bold green"
|
|||
|
)
|
|||
|
|
|||
|
def test_custom_logger():
|
|||
|
"""测试自定义日志记录器"""
|
|||
|
section("自定义日志记录器测试", "测试")
|
|||
|
|
|||
|
# 创建自定义日志记录器
|
|||
|
robot_logger = LogHelper("四足机器人")
|
|||
|
vision_logger = LogHelper("视觉系统")
|
|||
|
motion_logger = LogHelper("运动控制")
|
|||
|
|
|||
|
# 使用不同的日志记录器
|
|||
|
robot_logger.info("机器人初始化完成", "启动")
|
|||
|
vision_logger.warning("光照条件不佳", "警告")
|
|||
|
motion_logger.success("到达目标位置", "位置")
|
|||
|
|
|||
|
# 模拟一个错误情况
|
|||
|
try:
|
|||
|
raise ValueError("传感器数据异常")
|
|||
|
except Exception as e:
|
|||
|
vision_logger.error(f"处理图像时出错: {e}", "错误")
|
|||
|
|
|||
|
def main():
|
|||
|
"""主函数"""
|
|||
|
panel(
|
|||
|
"日志系统测试程序\n"
|
|||
|
"此程序演示日志系统的各项功能",
|
|||
|
"测试信息",
|
|||
|
"bold cyan"
|
|||
|
)
|
|||
|
|
|||
|
test_basic_logs()
|
|||
|
test_rich_features()
|
|||
|
test_custom_logger()
|
|||
|
|
|||
|
section("测试完成", "完成")
|
|||
|
success("日志系统功能测试全部完成", "完成")
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
main()
|