# 日志优化说明

## 问题描述
应用运行时产生了大量重复的日志，特别是：
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` - 托盘菜单日志设置 