# 阶段1: Logger系统测试指南

## ✅ 已完成的工作

1. ✅ 添加了 `src/utils/logger.js` - 专业日志系统
2. ✅ 修改了 `src/stores/tokenStore.js` - 集成logger系统
3. ✅ 批量替换了139处日志调用

---

## 🧪 测试步骤

### 1. 启动开发服务器

```bash
npm run dev
```

### 2. 打开浏览器控制台

打开Chrome DevTools（F12），切换到Console标签

### 3. 测试日志级别控制

在控制台输入以下命令测试：

#### 测试1: 静默模式（只显示警告和错误）
```javascript
wsDebug.quiet()
```
**预期结果**: 控制台消息会少很多，只显示WARNING和ERROR级别

#### 测试2: 正常模式（显示信息级别）
```javascript
wsDebug.normal()
```
**预期结果**: 显示INFO、WARN、ERROR级别的日志

#### 测试3: 调试模式（显示所有调试信息）
```javascript
wsDebug.debug()
```
**预期结果**: 显示DEBUG、INFO、WARN、ERROR级别的日志

#### 测试4: 详细模式（显示所有日志）
```javascript
wsDebug.verbose()
```
**预期结果**: 显示所有级别的日志，包括VERBOSE

### 4. 测试WebSocket连接日志

1. 选择一个Token并连接
2. 观察控制台输出

**应该看到格式化的日志**：
```
[HH:MM:SS] [TOKEN] [INFO] Token更新成功
[HH:MM:SS] [WS] [INFO] 🔗 WebSocket连接: token_xxx
[HH:MM:SS] [TOKEN] [DEBUG] 开始更新token...
```

### 5. 测试日志持久化

1. 刷新页面
2. 查看日志级别是否保持

**预期结果**: 
- 设置的日志级别应该保存在localStorage中
- 刷新后仍然生效

---

## 🎯 验收标准

- [ ] 浏览器控制台可以访问`wsDebug`对象
- [ ] `wsDebug.quiet()` 减少日志输出
- [ ] `wsDebug.normal()` 恢复正常日志
- [ ] `wsDebug.debug()` 显示调试日志
- [ ] `wsDebug.verbose()` 显示所有日志
- [ ] 日志格式包含时间戳、命名空间、级别
- [ ] 刷新页面后日志级别保持
- [ ] 生产环境默认只显示WARN和ERROR
- [ ] WebSocket连接正常工作
- [ ] Token选择和切换正常
- [ ] 批量任务功能不受影响（通过shouldLog配置仍然可用）

---

## 📊 对比效果

### 修改前：
```
❌ 解析 gameTokens 失败，使用空数组
[TokenStore] 开始更新token，角色ID: token_xxx
[TokenStore] 更新前的token数据: {...}
...（大量日志）
```

### 修改后：
```
[10:30:15] [TOKEN] [ERROR] ❌ 解析 gameTokens 失败，使用空数组
[10:30:16] [TOKEN] [INFO] Token更新成功
[10:30:16] [WS] [INFO] 🔗 WebSocket连接: token_xxx
```

**优势**：
- ✅ 格式统一，易于阅读
- ✅ 包含时间戳，方便追踪
- ✅ 可以动态调整日志级别
- ✅ 生产环境自动减少日志
- ✅ 不影响现有功能

---

## 🐛 常见问题

### Q1: 控制台找不到wsDebug对象
**A**: 检查logger.js是否正确导入到tokenStore.js

### Q2: 日志没有减少
**A**: 
1. 确认执行了`wsDebug.quiet()`
2. 刷新页面
3. 检查localStorage中的`ws_debug_level`

### Q3: 批量任务日志配置失效
**A**: 不会失效，shouldLog机制仍然保留，用于批量任务日志配置

### Q4: 日志格式显示异常
**A**: 检查浏览器Console设置，确保启用了时间戳显示

---

## 🎉 测试通过后

完成测试后，更新TODO状态：
- [x] 阶段1-1: 添加logger.js ✅
- [x] 阶段1-2: 修改tokenStore.js ✅
- [x] 阶段1-3: 测试logger系统 ✅

**下一步**: 进入阶段2 - 实现月度任务系统

---

## 💡 调试技巧

### 临时启用详细日志
```javascript
// 在控制台执行
wsDebug.verbose()
// 执行你要调试的操作
// 完成后恢复
wsDebug.normal()
```

### 查看当前日志级别
```javascript
localStorage.getItem('ws_debug_level')
// 返回: "2" (INFO), "3" (DEBUG), etc.
```

### 清除日志设置
```javascript
localStorage.removeItem('ws_debug_level')
localStorage.removeItem('ws_debug_verbose')
location.reload()
```

---

**准备好后，进入下一阶段！** 🚀

