#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 日志模块测试脚本 """ import time import math import json from utils.log_helper import ( LogHelper, section, info, debug, warning, error, success, timing, table, progress, syntax, json_log, panel ) def test_simple_logging(): """测试基本日志功能""" section("基本日志测试", "信息") debug("这是一条调试信息") info("这是一条普通信息", "信息") warning("这是一条警告信息", "警告") error("这是一条错误信息", "错误") success("这是一条成功信息", "成功") # 不带emoji的日志 debug("不带emoji的调试信息") info("不带emoji的普通信息") def test_timing_logging(): """测试计时日志功能""" section("计时日志测试", "时间") start = time.time() # 模拟耗时操作 sum_val = 0 for i in range(1000000): sum_val += i elapsed = time.time() - start timing("求和计算", elapsed) # 测试毫秒级 start = time.time() math.sin(0.5) elapsed = time.time() - start timing("计算正弦", elapsed) def test_section_logging(): """测试分节日志功能""" logger = LogHelper("分节测试") logger.section("旋转操作开始", "旋转") logger.debug("准备旋转", "调试") logger.info("开始执行旋转", "旋转") logger.info("旋转角度: 90度", "角度") logger.success("旋转完成", "完成") logger.section("检测横线", "检测") logger.info("开始检测横线", "检测") logger.info("检测到横线,距离: 0.5米", "距离") logger.success("检测完成", "完成") def test_rich_features(): """测试Rich特性""" section("Rich功能测试", "关键") # 测试表格输出 column_names = ["参数名", "数值", "单位", "说明"] rows = [ ["速度", 1.5, "m/s", "机器人移动速度"], ["角速度", 0.8, "rad/s", "旋转速度"], ["响应时间", 0.1, "s", "控制延迟"], ["电池电量", 87, "%", "剩余电量"] ] table("机器人状态参数", column_names, rows, "状态统计数据") # 测试进度条 items = list(range(10)) for item in progress(items, "处理任务", unit="任务"): # 模拟处理 time.sleep(0.2) # 测试代码高亮 code = """ def align_to_horizontal_line(ctrl, msg, observe=False): '''控制机器人旋转到横向线水平的位置''' # 检测横向线边缘 edge_point, edge_info = detect_horizontal_track_edge( ctrl.image_processor.get_current_image(), observe=observe, save_log=True ) if edge_point is None: error("未检测到横向线,无法进行校准", "失败") return False success("校准完成", "完成") return True """ syntax(code, "python", "横线校准函数") # 测试JSON输出 data = { "机器人ID": "MI-001", "位置": { "x": 1.23, "y": 4.56, "z": 0.05 }, "状态": "运行中", "传感器": [ {"名称": "相机", "状态": "正常"}, {"名称": "激光雷达", "状态": "正常"}, {"名称": "IMU", "状态": "警告"} ] } json_log(data, "机器人状态数据") # 测试面板 panel( "机器人控制系统初始化完成\n" "等待接收用户命令...\n\n" "使用 'help' 命令查看帮助信息", "系统状态", "bold blue" ) def main(): """主函数""" section("日志模块测试", "关键") test_simple_logging() test_timing_logging() test_section_logging() test_rich_features() success("所有测试完成!", "完成") if __name__ == "__main__": main()