Files
dify_market_manager_gui/LOG_OPTIMIZATION.md

147 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 日志优化说明
## 问题描述
应用运行时产生了大量重复的日志,特别是:
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` - 托盘菜单日志设置