# 推荐系统日志和运行状态检查

## 问题描述

1. **感觉没有推荐了**：推荐系统可能没有正常运行
2. **recommendations_bot.log 是不是没用了**：需要确认日志文件位置
3. **推荐系统输出的日志在哪**：需要确认日志路径
4. **recommendations-viewer 需要调整吗**：需要检查前端是否需要调整

---

## 推荐系统日志配置

### 1. 日志文件位置

**代码位置**：`trading_system/recommendations_main.py`

**日志文件**：
- 默认：`recommendations_bot.log`（项目根目录）
- 可通过环境变量 `RECOMMEND_LOG_FILE` 覆盖

**日志输出**：
1. **文件日志**：`recommendations_bot.log`（项目根目录）
2. **控制台输出**：stdout（如果通过supervisor运行，会被supervisor捕获）
3. **Redis日志**：写入Redis（用于前端日志监控，service="recommendations"）

### 2. Supervisor配置

**当前情况**：
- `supervisor_account.py` 只处理交易账户的配置（`auto_sys_acc1`, `auto_sys_acc2`等）
- **推荐服务没有自动生成supervisor配置**

**推荐服务可能的运行方式**：
1. **手动运行**：`python -m trading_system.recommendations_main`
2. **Supervisor手动配置**：需要手动创建supervisor配置文件
3. **未运行**：推荐服务可能没有启动

---

## 检查推荐系统运行状态

### 1. 检查进程

```bash
# 检查推荐服务进程
ps aux | grep recommendations_main

# 检查supervisor管理的推荐服务
supervisorctl status | grep recommend
```

### 2. 检查日志文件

```bash
# 检查项目根目录的日志文件
ls -lh /www/wwwroot/autosys_new/recommendations_bot.log

# 查看日志内容
tail -f /www/wwwroot/autosys_new/recommendations_bot.log

# 检查supervisor日志（如果通过supervisor运行）
# 需要找到推荐服务的supervisor配置，查看stdout_logfile和stderr_logfile
```

### 3. 检查Redis中的推荐数据

```bash
# 检查Redis中的推荐数据
redis-cli
> KEYS recommendations:*
> GET recommendations:snapshot
> HGETALL recommendations:realtime
```

### 4. 检查API接口

```bash
# 检查推荐API是否返回数据
curl http://asapi.deepx1.com/api/recommendations?type=realtime
```

---

## 推荐系统配置

### 1. 环境变量

推荐系统支持以下环境变量：

- `RECOMMEND_SCAN_INTERVAL_SEC`：扫描间隔（默认60秒）
- `RECOMMEND_MIN_SIGNAL_STRENGTH`：最小信号强度（默认5）
- `RECOMMEND_MAX_RECOMMENDATIONS`：最大推荐数量（默认60）
- `RECOMMEND_MIN_QUALITY_SCORE`：最小质量分数（默认0.0）
- `RECOMMEND_SCAN_CACHE_NAMESPACE`：缓存命名空间（默认"recommend"）
- `RECOMMEND_LOG_FILE`：日志文件路径（默认"recommendations_bot.log"）

### 2. Supervisor配置（如果需要）

如果需要通过supervisor管理推荐服务，需要手动创建配置文件：

```ini
[program:auto_recommend]
directory=/www/wwwroot/autosys_new
command=/www/wwwroot/autosys_new/trading_system/.venv/bin/python -m trading_system.recommendations_main
autostart=true
autorestart=unexpected
exitcodes=0,2
startsecs=0
stopasgroup=true
killasgroup=true
stopsignal=TERM
environment=PYTHONUNBUFFERED="1",PYTHONPATH="/www/wwwroot/autosys_new"
stdout_logfile=/www/wwwroot/autosys_new/logs/recommendations.out.log
stderr_logfile=/www/wwwroot/autosys_new/logs/recommendations.err.log
stdout_logfile_maxbytes=20MB
stdout_logfile_backups=5
stderr_logfile_maxbytes=20MB
stderr_logfile_backups=5
```

---

## recommendations-viewer 检查

### 1. API接口

**文件**：`recommendations-viewer/src/services/api.js`

**接口**：`/api/recommendations?type=realtime`

**检查**：
- API接口是否正确
- 是否返回数据
- 前端是否能正常显示

### 2. 是否需要调整

**当前实现**：
- 每10秒静默更新价格
- 使用实时推荐（type=realtime）
- 从Redis读取推荐数据

**如果推荐系统没有运行**：
- 前端会显示"没有推荐"或"加载失败"
- 需要确保推荐服务正常运行

---

## 解决方案

### 方案1：检查推荐服务是否运行

```bash
# 1. 检查进程
ps aux | grep recommendations_main

# 2. 如果没有运行，手动启动
cd /www/wwwroot/autosys_new
source trading_system/.venv/bin/activate
python -m trading_system.recommendations_main

# 3. 或者通过supervisor启动（如果已配置）
supervisorctl start auto_recommend
```

### 方案2：检查日志文件

```bash
# 1. 检查日志文件是否存在
ls -lh /www/wwwroot/autosys_new/recommendations_bot.log

# 2. 查看日志内容
tail -f /www/wwwroot/autosys_new/recommendations_bot.log

# 3. 如果日志文件不存在，可能是：
#    - 推荐服务没有运行
#    - 日志文件路径配置错误
#    - 权限问题
```

### 方案3：检查Redis数据

```bash
# 1. 连接Redis
redis-cli

# 2. 检查推荐数据
KEYS recommendations:*
GET recommendations:snapshot
HGETALL recommendations:realtime

# 3. 如果没有数据，说明推荐服务没有生成推荐
```

### 方案4：检查API接口

```bash
# 1. 检查API是否返回数据
curl http://asapi.deepx1.com/api/recommendations?type=realtime

# 2. 如果返回空数组，说明：
#    - 推荐服务没有运行
#    - 推荐服务运行但没有生成推荐
#    - Redis中没有推荐数据
```

---

## 推荐系统日志位置总结

### 1. 文件日志

- **位置**：`/www/wwwroot/autosys_new/recommendations_bot.log`
- **说明**：如果推荐服务运行，日志会写入这个文件

### 2. Supervisor日志（如果通过supervisor运行）

- **位置**：根据supervisor配置的 `stdout_logfile` 和 `stderr_logfile`
- **说明**：如果推荐服务通过supervisor运行，日志会写入supervisor配置的日志文件

### 3. Redis日志

- **位置**：Redis（service="recommendations"）
- **说明**：用于前端日志监控

---

## 下一步操作

1. **检查推荐服务是否运行**：
   ```bash
   ps aux | grep recommendations_main
   ```

2. **检查日志文件**：
   ```bash
   tail -f /www/wwwroot/autosys_new/recommendations_bot.log
   ```

3. **检查Redis数据**：
   ```bash
   redis-cli
   > KEYS recommendations:*
   ```

4. **检查API接口**：
   ```bash
   curl http://asapi.deepx1.com/api/recommendations?type=realtime
   ```

5. **如果推荐服务没有运行，启动它**：
   ```bash
   # 手动启动
   python -m trading_system.recommendations_main
   
   # 或通过supervisor启动（如果已配置）
   supervisorctl start auto_recommend
   ```

---

## recommendations-viewer 是否需要调整

**当前情况**：
- 前端代码看起来正常
- 如果推荐系统正常运行，前端应该能正常显示推荐

**如果需要调整**：
- 检查API接口是否正确
- 检查前端是否能正常获取数据
- 检查前端显示逻辑是否正确

**建议**：
- 先确保推荐服务正常运行
- 然后检查前端是否能正常显示推荐
- 如果前端有问题，再进行调整
