重启之后清除登录信息

This commit is contained in:
2025-07-15 19:55:59 +08:00
parent 4caff7542e
commit 0b2974e2c9
18 changed files with 1873 additions and 86 deletions

147
LOG_OPTIMIZATION.md Normal file
View File

@@ -0,0 +1,147 @@
# 日志优化说明
## 问题描述
应用运行时产生了大量重复的日志,特别是:
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` - 托盘菜单日志设置