4.0 KiB
4.0 KiB
日志优化说明
问题描述
应用运行时产生了大量重复的日志,特别是:
- tokenExpireTimer 每10秒打印3条日志
- WebSocket 心跳消息 每30秒打印1条日志
- 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. 手动调整日志级别
- 右键点击托盘图标
- 选择"日志设置"
- 选择所需的日志级别:
- 详细日志:显示所有日志,包括调试信息
- 标准日志:显示重要信息,隐藏调试信息
- 仅错误日志:只显示错误和警告信息
3. 查看日志
- 右键点击托盘图标
- 选择"查看日志"
- 系统会自动打开日志文件所在目录
日志级别说明
DEBUG (详细日志)
- 显示所有日志信息
- 包括调试信息、心跳消息等
- 适用于开发和调试
INFO (标准日志)
- 显示重要信息
- 隐藏调试信息和心跳消息
- 适用于日常使用
ERROR (仅错误日志)
- 只显示错误和警告信息
- 隐藏所有其他日志
- 适用于生产环境
配置选项
环境变量
# 设置日志级别
NODE_ENV=development # 开发环境,显示详细日志
NODE_ENV=production # 生产环境,显示标准日志
代码中设置
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- 托盘菜单日志设置