mi-task/test/test_log.py
2025-05-22 05:32:16 +00:00

138 lines
3.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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()