Files
ai-team-dashboard/dashboard/LOGGING_CONFIG.md
fang 5f14174bb9 feat: 添加 Dashboard 完整日志监控系统 v1.1.0
 新增功能
- 完整的日志记录系统(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
2026-03-11 11:37:35 +08:00

7.4 KiB
Raw Permalink Blame History

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}

⚠️ 注意事项

  1. 日志文件大小

    • 日志会持续写入 logs/dashboard.log
    • 建议定期清理或使用日志轮转
    • 可以设置 "file": false 避免文件增长
  2. 性能影响

    • DEBUG 级别会产生大量日志,可能影响性能
    • 生产环境推荐使用 INFOWARN 级别
  3. 磁盘空间

    • 启用文件日志会占用磁盘空间
    • 定期检查 logs/ 目录大小
  4. 日志敏感信息

    • 日志中可能包含 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
    }
  }
}