✨ 新增功能 - 完整的日志记录系统(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
7.4 KiB
7.4 KiB
Dashboard 日志配置说明
📋 概述
Dashboard 支持通过 config.json 配置日志功能,可以灵活控制日志的记录行为。
⚙️ 配置项
在 config.json 中添加 dashboard.logging 配置:
{
"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:生产环境(推荐配置)
{
"logging": {
"enabled": true,
"level": "INFO",
"file": true,
"console": true
}
}
说明: 记录重要信息,平衡性能和可观测性
场景 2:开发调试
{
"logging": {
"enabled": true,
"level": "DEBUG",
"file": true,
"console": true
}
}
说明: 记录所有详细信息,方便排查问题
场景 3:性能优先
{
"logging": {
"enabled": true,
"level": "WARN",
"file": true,
"console": false
}
}
说明: 只记录警告和错误,减少日志开销,控制台不输出
场景 4:只记录错误
{
"logging": {
"enabled": true,
"level": "ERROR",
"file": true,
"console": true
}
}
说明: 只记录严重错误,最小化日志量
场景 5:完全关闭日志
{
"logging": {
"enabled": false,
"level": "INFO",
"file": false,
"console": false
}
}
说明: 完全关闭日志(不推荐,排查问题会很困难)
场景 6:只输出到控制台
{
"logging": {
"enabled": true,
"level": "INFO",
"file": false,
"console": true
}
}
说明: 不写入日志文件,节省磁盘空间
场景 7:只写入文件
{
"logging": {
"enabled": true,
"level": "INFO",
"file": true,
"console": false
}
}
说明: 不在控制台输出,保持终端干净
📝 各级别输出内容对比
| 日志内容 | ERROR | WARN | INFO | DEBUG |
|---|---|---|---|---|
| 严重错误 | ✅ | ✅ | ✅ | ✅ |
| 警告信息 | ❌ | ✅ | ✅ | ✅ |
| API 请求 | ❌ | ❌ | ✅ | ✅ |
| 成功操作 | ❌ | ❌ | ✅ | ✅ |
| 性能统计 | ❌ | ❌ | ✅ | ✅ |
| 缓存命中 | ❌ | ❌ | ❌ | ✅ |
| 详细调试 | ❌ | ❌ | ❌ | ✅ |
🔄 动态修改配置
修改 config.json 后,需要重启 Dashboard 才能生效:
# 停止服务
./stop-dashboard.sh
# 修改 config.json
vim config.json
# 重新启动
./start-with-log.sh
💡 推荐配置
开发环境
{
"logging": {
"enabled": true,
"level": "DEBUG",
"file": true,
"console": true
}
}
测试环境
{
"logging": {
"enabled": true,
"level": "INFO",
"file": true,
"console": true
}
}
生产环境
{
"logging": {
"enabled": true,
"level": "INFO",
"file": true,
"console": false
}
}
🔍 验证配置
启动 Dashboard 后,查看日志输出:
# 查看配置是否生效
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}
⚠️ 注意事项
-
日志文件大小
- 日志会持续写入
logs/dashboard.log - 建议定期清理或使用日志轮转
- 可以设置
"file": false避免文件增长
- 日志会持续写入
-
性能影响
DEBUG级别会产生大量日志,可能影响性能- 生产环境推荐使用
INFO或WARN级别
-
磁盘空间
- 启用文件日志会占用磁盘空间
- 定期检查
logs/目录大小
-
日志敏感信息
- 日志中可能包含 IP 地址、请求路径等信息
- 注意保护日志文件的访问权限
🛠️ 故障排查
问题 1:配置不生效
检查:
# 1. 确认配置文件格式正确
cat config.json | python -m json.tool
# 2. 重启服务
./stop-dashboard.sh && ./start-with-log.sh
# 3. 查看启动日志
tail -50 logs/dashboard.log
问题 2:日志文件不更新
检查:
# 1. 确认 file 配置为 true
grep -A 4 '"logging"' config.json
# 2. 检查文件权限
ls -la logs/dashboard.log
# 3. 检查磁盘空间
df -h .
问题 3:控制台无输出
检查:
# 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- 日志分析工具
🔗 配置模板
完整的配置文件模板(包含日志配置):
{
"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
}
}
}