Skip to content

后端日志与服务诊断

如果是 500错误,或者 AI 任务卡住不执行,这时候光看浏览器已经没用了。你需要深入后端和系统底层。

1. 区分两类问题

在 智码方舟 中,后端问题分为两类:

  1. 服务本身的问题:NestJS 主服务报错、数据库连不上。这会导致网站打不开、接口 500。
  2. AI 任务的问题:服务是好的,但 AI 生成代码的任务失败了(比如 Docker 容器挂了、脚本执行出错)。

2. 排查 AI 任务问题 (Task Debugging)

这是最常见的情况。你发起了一个生成任务,但它不动了或者失败了。

✅ 方法 A:使用任务详情页的日志 (推荐)

  1. 进入 任务详情页 (Task Detail)
  2. 观察顶部的状态栏。
    • WebSocket: 必须是绿色连接状态。如果断开,页面无法接收日志。
    • 容器状态: 如果显示 deadexited,说明执行任务的 Docker 容器崩溃了。
  3. 切换到左侧的 "日志 (Logs)" 视图。
    • 这里显示的是容器内部的运行日志。
    • 查看是否有报错信息(Error)。
    • 如果日志断断续续,可以点击 "下载日志" 获取完整文件进行分析。

✅ 方法 B:检查 Docker 容器 (进阶)

如果任务页没有任何日志,可能是容器根本没启动起来。 在你的电脑终端(Terminal)运行:

bash
# 查看正在运行的容器
docker ps

# 查看所有容器(包括挂掉的)
docker ps -a

找到对应任务的容器(通常名字包含 task id),查看它的日志:

bash
docker logs <container_id>

3. 排查后端服务问题 (Server Debugging)

如果整个网站都报错(接口 500 或 Connection Refused),说明后端主服务有问题。

✅ 场景一:本地开发 (Local Dev)

如果你是通过 pnpm dev 启动的项目:

  1. 找到你运行启动命令的那个终端窗口。
  2. 观察输出日志。后端报错通常会打印出大段的 Error Stack Trace
  3. 关键看 File 行,定位是哪个文件的哪一行代码出错。

✅ 场景二:Docker 部署

如果你是使用 docker compose up 启动的服务:

bash
# 查看后端服务日志
docker compose logs -f server

# 或者只看最后 100 行
docker compose logs --tail=100 -f server

✅ 场景三:数据库问题

很多时候 500 错误是因为数据库连不上。

  • 检查日志中是否有 PrismaClientInitializationErrorConnection refused
  • 确保你的 Postgres 数据库正在运行。
bash
docker ps | grep postgres

4. 终极招数:重启大法

如果实在找不到原因,可以尝试重启相关服务:

bash
# 重启 Docker 部署
docker compose restart

# 或者清除所有容器重来 (慎用,会清空数据如果没挂载卷)
docker compose down
docker compose up -d

Released under the MIT License.