✨ 新增功能 - 完整的日志记录系统(6 种日志级别) - 日志配置功能(可通过 config.json 控制) - 性能监控装饰器和请求日志中间件 - 7 个管理工具脚本 - 完整的文档和使用指南 🛠️ 管理工具 - start-with-log.sh: 启动脚本(带日志) - stop-dashboard.sh: 停止脚本 - view-logs.sh: 日志查看器 - monitor-logs.sh: 实时监控工具(支持多种过滤器) - analyze-logs.sh: 日志分析工具(自动生成报告) - demo-logging.sh: 功能演示脚本 - test-logging-config.sh: 配置测试工具 📊 日志特性 - 支持 INFO/SUCCESS/WARN/ERROR/DEBUG/PERF 6 种级别 - 自动记录启动过程、API 请求、性能统计 - 缓存命中情况追踪 - 分步性能监控 - 智能过滤器 ⚙️ 配置功能 - 可控制是否启用日志(默认:true) - 可设置日志级别(默认:INFO) - 可控制文件/控制台输出 - 支持动态配置(重启生效) 📚 文档 - LOGGING_GUIDE.md: 完整使用指南 - LOGGING_CONFIG.md: 配置说明文档 - LOGGING_CONFIG_QUICK.md: 快速配置指南 - 多个中文说明文档 🔒 安全 - 添加 .gitignore 排除敏感信息 - config.json(含 Token)不提交 - 日志文件不提交 - 示例配置使用占位符 ✅ 测试 - 语法检查通过 - 功能完整性验证 - 配置控制测试通过 - 文档完整性检查 详见 CHANGELOG_v1.1.0.md Made-with: Cursor
371 lines
7.4 KiB
Markdown
371 lines
7.4 KiB
Markdown
# Dashboard 日志配置说明
|
||
|
||
## 📋 概述
|
||
|
||
Dashboard 支持通过 `config.json` 配置日志功能,可以灵活控制日志的记录行为。
|
||
|
||
## ⚙️ 配置项
|
||
|
||
在 `config.json` 中添加 `dashboard.logging` 配置:
|
||
|
||
```json
|
||
{
|
||
"dashboard": {
|
||
"port": 3800,
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "INFO",
|
||
"file": true,
|
||
"console": true
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 配置项说明
|
||
|
||
| 配置项 | 类型 | 默认值 | 说明 |
|
||
|--------|------|--------|------|
|
||
| `enabled` | boolean | `true` | 是否启用日志系统 |
|
||
| `level` | string | `"INFO"` | 日志级别,可选值:`DEBUG` / `INFO` / `WARN` / `ERROR` |
|
||
| `file` | boolean | `true` | 是否写入日志文件 |
|
||
| `console` | boolean | `true` | 是否输出到控制台 |
|
||
|
||
## 📊 日志级别说明
|
||
|
||
日志级别按优先级从低到高排列:
|
||
|
||
### DEBUG(调试)
|
||
最详细的日志,包含所有运行细节:
|
||
- 缓存命中情况
|
||
- 组件加载详情
|
||
- 详细的数据获取过程
|
||
|
||
**何时使用:** 开发调试时,需要查看详细运行过程
|
||
|
||
### INFO(信息)⭐ 默认
|
||
一般信息日志,记录重要的运行状态:
|
||
- API 请求记录
|
||
- 数据加载完成
|
||
- 配置更新
|
||
- 监控数据返回
|
||
|
||
**何时使用:** 生产环境推荐,平衡详细度和性能
|
||
|
||
### WARN(警告)
|
||
警告信息,需要关注但不影响运行:
|
||
- 缓存获取失败(使用旧缓存)
|
||
- Docker 状态获取失败
|
||
- Gateway 健康检查失败
|
||
|
||
**何时使用:** 只关注潜在问题时
|
||
|
||
### ERROR(错误)
|
||
错误信息,操作失败需要处理:
|
||
- 配置文件加载失败
|
||
- API 调用失败
|
||
- 数据解析错误
|
||
- 未捕获异常
|
||
|
||
**何时使用:** 只记录严重错误时
|
||
|
||
### 特殊级别
|
||
|
||
- **SUCCESS**:成功操作(与 INFO 同级)
|
||
- **PERF**:性能监控(与 INFO 同级)
|
||
|
||
## 🎯 使用场景
|
||
|
||
### 场景 1:生产环境(推荐配置)
|
||
```json
|
||
{
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "INFO",
|
||
"file": true,
|
||
"console": true
|
||
}
|
||
}
|
||
```
|
||
**说明:** 记录重要信息,平衡性能和可观测性
|
||
|
||
### 场景 2:开发调试
|
||
```json
|
||
{
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "DEBUG",
|
||
"file": true,
|
||
"console": true
|
||
}
|
||
}
|
||
```
|
||
**说明:** 记录所有详细信息,方便排查问题
|
||
|
||
### 场景 3:性能优先
|
||
```json
|
||
{
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "WARN",
|
||
"file": true,
|
||
"console": false
|
||
}
|
||
}
|
||
```
|
||
**说明:** 只记录警告和错误,减少日志开销,控制台不输出
|
||
|
||
### 场景 4:只记录错误
|
||
```json
|
||
{
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "ERROR",
|
||
"file": true,
|
||
"console": true
|
||
}
|
||
}
|
||
```
|
||
**说明:** 只记录严重错误,最小化日志量
|
||
|
||
### 场景 5:完全关闭日志
|
||
```json
|
||
{
|
||
"logging": {
|
||
"enabled": false,
|
||
"level": "INFO",
|
||
"file": false,
|
||
"console": false
|
||
}
|
||
}
|
||
```
|
||
**说明:** 完全关闭日志(不推荐,排查问题会很困难)
|
||
|
||
### 场景 6:只输出到控制台
|
||
```json
|
||
{
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "INFO",
|
||
"file": false,
|
||
"console": true
|
||
}
|
||
}
|
||
```
|
||
**说明:** 不写入日志文件,节省磁盘空间
|
||
|
||
### 场景 7:只写入文件
|
||
```json
|
||
{
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "INFO",
|
||
"file": true,
|
||
"console": false
|
||
}
|
||
}
|
||
```
|
||
**说明:** 不在控制台输出,保持终端干净
|
||
|
||
## 📝 各级别输出内容对比
|
||
|
||
| 日志内容 | ERROR | WARN | INFO | DEBUG |
|
||
|----------|-------|------|------|-------|
|
||
| 严重错误 | ✅ | ✅ | ✅ | ✅ |
|
||
| 警告信息 | ❌ | ✅ | ✅ | ✅ |
|
||
| API 请求 | ❌ | ❌ | ✅ | ✅ |
|
||
| 成功操作 | ❌ | ❌ | ✅ | ✅ |
|
||
| 性能统计 | ❌ | ❌ | ✅ | ✅ |
|
||
| 缓存命中 | ❌ | ❌ | ❌ | ✅ |
|
||
| 详细调试 | ❌ | ❌ | ❌ | ✅ |
|
||
|
||
## 🔄 动态修改配置
|
||
|
||
修改 `config.json` 后,需要重启 Dashboard 才能生效:
|
||
|
||
```bash
|
||
# 停止服务
|
||
./stop-dashboard.sh
|
||
|
||
# 修改 config.json
|
||
vim config.json
|
||
|
||
# 重新启动
|
||
./start-with-log.sh
|
||
```
|
||
|
||
## 💡 推荐配置
|
||
|
||
### 开发环境
|
||
```json
|
||
{
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "DEBUG",
|
||
"file": true,
|
||
"console": true
|
||
}
|
||
}
|
||
```
|
||
|
||
### 测试环境
|
||
```json
|
||
{
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "INFO",
|
||
"file": true,
|
||
"console": true
|
||
}
|
||
}
|
||
```
|
||
|
||
### 生产环境
|
||
```json
|
||
{
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "INFO",
|
||
"file": true,
|
||
"console": false
|
||
}
|
||
}
|
||
```
|
||
|
||
## 🔍 验证配置
|
||
|
||
启动 Dashboard 后,查看日志输出:
|
||
|
||
```bash
|
||
# 查看配置是否生效
|
||
tail -20 logs/dashboard.log | grep "日志配置"
|
||
```
|
||
|
||
应该能看到类似输出:
|
||
```
|
||
[2026-03-11 10:30:15.180] ℹ️ [INFO] [配置] 日志配置已更新 | {"enabled":true,"level":"INFO","file":true,"console":true}
|
||
```
|
||
|
||
如果没有配置 `logging` 项,会看到:
|
||
```
|
||
[2026-03-11 10:30:15.180] ℹ️ [INFO] [配置] 使用默认日志配置 | {"enabled":true,"level":"INFO","file":true,"console":true}
|
||
```
|
||
|
||
## ⚠️ 注意事项
|
||
|
||
1. **日志文件大小**
|
||
- 日志会持续写入 `logs/dashboard.log`
|
||
- 建议定期清理或使用日志轮转
|
||
- 可以设置 `"file": false` 避免文件增长
|
||
|
||
2. **性能影响**
|
||
- `DEBUG` 级别会产生大量日志,可能影响性能
|
||
- 生产环境推荐使用 `INFO` 或 `WARN` 级别
|
||
|
||
3. **磁盘空间**
|
||
- 启用文件日志会占用磁盘空间
|
||
- 定期检查 `logs/` 目录大小
|
||
|
||
4. **日志敏感信息**
|
||
- 日志中可能包含 IP 地址、请求路径等信息
|
||
- 注意保护日志文件的访问权限
|
||
|
||
## 🛠️ 故障排查
|
||
|
||
### 问题 1:配置不生效
|
||
**检查:**
|
||
```bash
|
||
# 1. 确认配置文件格式正确
|
||
cat config.json | python -m json.tool
|
||
|
||
# 2. 重启服务
|
||
./stop-dashboard.sh && ./start-with-log.sh
|
||
|
||
# 3. 查看启动日志
|
||
tail -50 logs/dashboard.log
|
||
```
|
||
|
||
### 问题 2:日志文件不更新
|
||
**检查:**
|
||
```bash
|
||
# 1. 确认 file 配置为 true
|
||
grep -A 4 '"logging"' config.json
|
||
|
||
# 2. 检查文件权限
|
||
ls -la logs/dashboard.log
|
||
|
||
# 3. 检查磁盘空间
|
||
df -h .
|
||
```
|
||
|
||
### 问题 3:控制台无输出
|
||
**检查:**
|
||
```bash
|
||
# 1. 确认 console 配置为 true
|
||
grep -A 4 '"logging"' config.json
|
||
|
||
# 2. 确认 enabled 为 true
|
||
grep "enabled" config.json
|
||
```
|
||
|
||
## 📚 相关文档
|
||
|
||
- `LOGGING_GUIDE.md` - 日志功能完整使用指南
|
||
- `logs/README.md` - 日志文件说明
|
||
- `monitor-logs.sh --help` - 监控工具帮助
|
||
- `analyze-logs.sh` - 日志分析工具
|
||
|
||
## 🔗 配置模板
|
||
|
||
完整的配置文件模板(包含日志配置):
|
||
|
||
```json
|
||
{
|
||
"github": {
|
||
"owner": "your-github-username",
|
||
"token": "ghp_xxx",
|
||
"taskRepo": "your-github-username/ai-team-tasks"
|
||
},
|
||
"ai": {
|
||
"apiKey": "sk-xxx",
|
||
"provider": "coding-plan",
|
||
"baseUrl": "https://coding.dashscope.aliyuncs.com/v1"
|
||
},
|
||
"bots": {
|
||
"leader": {
|
||
"codeRepo": "your-github-username/ai-team-leader-code",
|
||
"skillsRepo": "your-github-username/ai-team-leader-skills"
|
||
},
|
||
"qianwen": {
|
||
"codeRepo": "your-github-username/ai-team-fullstack-code",
|
||
"skillsRepo": "your-github-username/ai-team-fullstack-skills"
|
||
},
|
||
"kimi": {
|
||
"codeRepo": "your-github-username/ai-team-thinktank-code",
|
||
"skillsRepo": "your-github-username/ai-team-thinktank-skills"
|
||
}
|
||
},
|
||
"feishu": {
|
||
"enabled": true,
|
||
"qianwen": {
|
||
"appId": "cli_xxx",
|
||
"appSecret": "xxx"
|
||
},
|
||
"kimi": {
|
||
"appId": "cli_xxx",
|
||
"appSecret": "xxx"
|
||
}
|
||
},
|
||
"pollInterval": 5,
|
||
"dashboard": {
|
||
"port": 3800,
|
||
"logging": {
|
||
"enabled": true,
|
||
"level": "INFO",
|
||
"file": true,
|
||
"console": true
|
||
}
|
||
}
|
||
}
|
||
```
|