# 日志优化说明 ## 问题描述 应用运行时产生了大量重复的日志,特别是: 1. **tokenExpireTimer** 每10秒打印3条日志 2. **WebSocket 心跳消息** 每30秒打印1条日志 3. **WebSocket 连接成功** 打印重复的 emoji 日志 ## 优化内容 ### 1. tokenExpireTimer 日志优化 (`src/main/window.js`) - **优化前**:每10秒打印3条日志 ``` tokenExpireTimer 触发 tokenExpireTimer 触发 对比时间戳 tokenExpireTimer 触发 对比时间戳差距为:23 ``` - **优化后**:每60秒打印1条日志 ``` tokenExpireTimer 检查 - 时间差距: 23分钟 ``` ### 2. WebSocket 心跳消息优化 (`src/main/utils/WebSocketClient.js`) - **优化前**:每30秒打印心跳消息 ``` 收到消息: {"cmd":"heartcheck"} ``` - **优化后**:心跳消息不打印日志,或仅在调试模式下打印 ### 3. WebSocket 连接日志优化 - **优化前**:连接成功时打印3行重复的 emoji ``` 😀😀😀😀 WebSocket connect create ok 😀😀😀😀 😀😀😀😀 WebSocket connect create ok 😀😀😀😀 😀😀😀😀 WebSocket connect create ok 😀😀😀😀 ``` - **优化后**:简洁的连接成功日志 ``` WebSocket 连接成功 WebSocket protocol: [协议] ``` ### 4. 日志级别控制系统 (`src/main/utils/logger.js`) - 添加日志级别控制功能 - 支持 ERROR、WARN、INFO、DEBUG 四个级别 - 可以动态调整日志级别 ### 5. 托盘菜单日志设置 (`src/main/tray.js`) - 添加"日志设置"菜单项 - 提供三个日志级别选项: - 详细日志 (DEBUG) - 标准日志 (INFO) - 仅错误日志 (ERROR) ## 优化效果 ### 日志数量对比 - **优化前**:每分钟约 18-21 条日志 - tokenExpireTimer: 6条/分钟 - WebSocket 心跳: 2条/分钟 - 其他日志: 10-13条/分钟 - **优化后**:每分钟约 2-5 条日志 - tokenExpireTimer: 1条/分钟 - WebSocket 心跳: 0条/分钟 - 其他日志: 1-4条/分钟 ### 日志文件大小 - **优化前**:日志文件增长速度快,容易达到几MB - **优化后**:日志文件增长缓慢,便于管理和查看 ## 使用方法 ### 1. 自动优化 - 应用启动后自动应用优化设置 - 无需用户干预 ### 2. 手动调整日志级别 1. 右键点击托盘图标 2. 选择"日志设置" 3. 选择所需的日志级别: - **详细日志**:显示所有日志,包括调试信息 - **标准日志**:显示重要信息,隐藏调试信息 - **仅错误日志**:只显示错误和警告信息 ### 3. 查看日志 1. 右键点击托盘图标 2. 选择"查看日志" 3. 系统会自动打开日志文件所在目录 ## 日志级别说明 ### DEBUG (详细日志) - 显示所有日志信息 - 包括调试信息、心跳消息等 - 适用于开发和调试 ### INFO (标准日志) - 显示重要信息 - 隐藏调试信息和心跳消息 - 适用于日常使用 ### ERROR (仅错误日志) - 只显示错误和警告信息 - 隐藏所有其他日志 - 适用于生产环境 ## 配置选项 ### 环境变量 ```bash # 设置日志级别 NODE_ENV=development # 开发环境,显示详细日志 NODE_ENV=production # 生产环境,显示标准日志 ``` ### 代码中设置 ```javascript import logger from './utils/logger'; // 设置日志级别 logger.setLogLevel('DEBUG'); // 详细日志 logger.setLogLevel('INFO'); // 标准日志 logger.setLogLevel('ERROR'); // 仅错误日志 ``` ## 注意事项 ### 1. 开发环境 - 建议使用"详细日志"级别 - 便于调试和问题排查 - 可以查看所有系统状态 ### 2. 生产环境 - 建议使用"标准日志"或"仅错误日志"级别 - 减少日志文件大小 - 提高应用性能 ### 3. 问题排查 - 如果遇到问题,可以临时切换到"详细日志"级别 - 查看完整的系统运行状态 - 问题解决后可以切换回标准级别 ## 相关文件 - `src/main/window.js` - tokenExpireTimer 优化 - `src/main/utils/WebSocketClient.js` - WebSocket 日志优化 - `src/main/utils/logger.js` - 日志级别控制系统 - `src/main/tray.js` - 托盘菜单日志设置