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