138 lines
3.9 KiB
Python
Executable File
138 lines
3.9 KiB
Python
Executable File
#!/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() |