日志模块使用说明.md 4.5 KB

日志模块使用说明

概述

本项目已集成了日志模块 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

测试日志模块

运行测试脚本验证日志模块是否正常工作:

python test_logger.py

测试完成后,检查 logs/test.log 文件查看日志输出。

在代码中使用日志

1. 导入日志模块

from kodi_util.LoggerToolModule import LoggerTool

# 创建日志实例
logger = LoggerTool(name='your_logger', log_file='your_app.log', log_dir='logs')

2. 记录不同级别的日志

# 信息日志
logger.info("任务开始执行")

# 调试日志
logger.debug("变量值: x=10, y=20")

# 警告日志
logger.warning("配置项缺失,使用默认值")

# 错误日志
logger.error("操作失败: 连接超时")

# 严重错误日志
logger.critical("系统崩溃: 内存不足")

3. 记录异常信息

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编码,支持中文字符