# 日志模块使用说明 ## 概述 本项目已集成了日志模块 `LoggerToolModule`,用于记录程序运行过程中的各种信息,包括任务执行、串口信号处理、线程启动、方法调用和错误信息等。 ## 日志文件位置 所有日志文件都保存在项目根目录下的 `logs/` 文件夹中: - `logs/kodi_play.log` - Kodi播放任务相关日志 - `logs/application.log` - 主应用程序日志 - `logs/test.log` - 测试日志(运行测试脚本时生成) ## 日志级别 日志模块支持以下级别的日志记录: - **DEBUG** - 调试信息 - **INFO** - 一般信息 - **WARNING** - 警告信息 - **ERROR** - 错误信息 - **CRITICAL** - 严重错误信息 ## 记录的日志内容 ### 1. 任务执行信息 (INFO级别) - 任务初始化开始和完成 - 配置文件加载结果 - 线程启动和停止 - 播放状态变化 示例: ``` [2024-01-01 10:00:00 - INFO]: 开始初始化监听串口任务 [2024-01-01 10:00:01 - INFO]: 成功加载串口配置文件 [2024-01-01 10:00:02 - INFO]: 启动Kodi状态监控线程 ``` ### 2. 串口信号处理 (INFO级别) - 串口连接状态 - 接收到的信号数据 - 信号解析结果 - 客户端索引验证 示例: ``` [2024-01-01 10:01:00 - INFO]: 尝试打开串口 - 端口: COM3, 波特率: 9600 [2024-01-01 10:01:01 - INFO]: 串口打开成功 - COM3 [2024-01-01 10:01:05 - INFO]: 接收到串口信号 - 十六进制数据: 0x01 [2024-01-01 10:01:05 - INFO]: 解析单字节信号成功 - 0x01 -> 客户端索引: 1 ``` ### 3. 播放控制信息 (INFO级别) - 视频播放开始和结束 - 播放模式选择 - 监控线程状态 - 音量和循环设置 示例: ``` [2024-01-01 10:02:00 - INFO]: 开始播放视频 - 路径: /videos/demo.mp4, 客户端索引: 1, 循环播放: false [2024-01-01 10:02:01 - INFO]: 单独播放模式 - 在客户端 1 上播放视频: /videos/demo.mp4 [2024-01-01 10:02:02 - INFO]: 播放成功,启动播放监控线程 ``` ### 4. 错误信息 (ERROR级别) - 串口连接失败 - 配置文件加载错误 - 播放失败 - 异常处理 示例: ``` [2024-01-01 10:03:00 - ERROR]: 打开串口失败 - 端口: COM3, 错误: 设备不存在 [2024-01-01 10:03:01 - ERROR]: 加载配置文件失败: 文件不存在 [2024-01-01 10:03:02 - ERROR]: 播放视频时发生异常 - 错误: 连接超时 ``` ### 5. 警告信息 (WARNING级别) - 配置项缺失 - 索引超出范围 - 资源状态异常 示例: ``` [2024-01-01 10:04:00 - WARNING]: 配置文件中找不到 'video_paths' 键 [2024-01-01 10:04:01 - WARNING]: 客户端索引超出范围 - 索引: 5, 总客户端数: 3 [2024-01-01 10:04:02 - WARNING]: 尝试发送响应但串口未打开 ``` ## 日志文件管理 ### 自动轮换 - 当日志文件达到 1GB 时自动轮换 - 保留最近 2 个备份文件 - 旧的备份文件会移动到 `logs/backup/` 目录并添加时间戳 ### 备份文件命名 备份文件格式:`原文件名.序号.时间戳` 例如:`kodi_play.log.1.20240101120000` ## 测试日志模块 运行测试脚本验证日志模块是否正常工作: ```bash python test_logger.py ``` 测试完成后,检查 `logs/test.log` 文件查看日志输出。 ## 在代码中使用日志 ### 1. 导入日志模块 ```python from kodi_util.LoggerToolModule import LoggerTool # 创建日志实例 logger = LoggerTool(name='your_logger', log_file='your_app.log', log_dir='logs') ``` ### 2. 记录不同级别的日志 ```python # 信息日志 logger.info("任务开始执行") # 调试日志 logger.debug("变量值: x=10, y=20") # 警告日志 logger.warning("配置项缺失,使用默认值") # 错误日志 logger.error("操作失败: 连接超时") # 严重错误日志 logger.critical("系统崩溃: 内存不足") ``` ### 3. 记录异常信息 ```python try: # 一些可能出错的操作 risky_operation() except Exception as e: logger.error(f"操作失败 - 错误: {str(e)}") ``` ## 日志查看建议 1. **实时监控**:使用 `tail -f logs/kodi_play.log` 实时查看日志 2. **错误排查**:使用 `grep ERROR logs/*.log` 查找所有错误信息 3. **性能分析**:关注线程启动和播放相关的时间戳 4. **调试问题**:结合控制台输出和日志文件进行问题定位 ## 注意事项 1. 日志文件会随着程序运行逐渐增大,定期清理旧的备份文件 2. 在生产环境中可以调整日志级别,减少DEBUG级别的输出 3. 敏感信息(如密码)不会记录在日志中 4. 日志文件采用UTF-8编码,支持中文字符