日志
约 987 字大约 3 分钟
Harbor 把程序输出集中到同一个界面中。Task 启动后可以立即查看实时日志;停止后,仍然可以从历史记录中继续排查。
先选择正确的日志
日志区域左侧显示当前 Workspace 最近的任务日志:
- 带有 live 状态的是正在运行的 Task,内容会持续更新。
- 带有 history 状态的是已经停止的 Task,内容不会再变化。
- 正在运行的日志排在最前面,其他日志按最近更新时间排序。
每次启动 Task 都会创建一条新的日志。通过任务名称、config 和启动时间,可以区分同一 Task 的多次运行。
查看实时日志
启动 Task 后,选择对应的 live 日志即可观察输出。Harbor 只读取新增内容,不需要反复加载整个文件。
切换页面或 Workspace 不会影响任务进程。回到能发现该 Task 的 Workspace 后,可以继续查看它的实时状态;日志记录仍保存在启动任务时使用的 Workspace 中。
提示
程序需要及时输出日志。Python 程序可以使用 python -u,或主动刷新 stdout,避免输出长时间停留在缓冲区中。
查看历史日志
Task 停止后,live 日志会自动变成 history。选择历史记录即可查看上一次或更早的运行结果。
每个 Workspace 保留最近 50 条任务日志,超过数量后自动清理最旧记录。历史日志非常大时,界面只读取文件末尾 1 MiB,通常足够保留错误发生前后的关键信息。
本地和远端 Workspace 的日志互相独立。远端任务日志保存在远端机器上,由 Harbor API 读取,不需要手动下载文件。
复制日志
日志很长时,不要把全部内容直接复制给同事或 AI:
- 如果已经选中文字,复制按钮只复制选中内容。
- 没有选区时,复制日志末尾指定行数。
- 默认复制最后 128 行,也可以选择 256、512 或 1024 行。
- 最大复制范围为最后 1024 行。
通常先复制最后 128 行;只有错误上下文不完整时再逐步增加。
Harbor Log 与 Task Log
Task Log 是程序自身的 stdout 和 stderr,用于判断命令是否成功、依赖是否缺失或程序为何退出。
Harbor Log 记录 GUI 与 harbor_core 的行为,用于排查连接、版本、远端部署、Workspace 切换和 API 错误。点击日志区域标题旁的文档图标即可切换到 Harbor Log。
遇到问题时可以按这个顺序判断:
- Task 能发现但启动失败:先看 Task Log。
- Task 没有出现:检查搜索路径,再看 Harbor Log 的扫描信息。
- 远端无法连接或版本不符:查看 Harbor Log。
- 程序已经运行但功能异常:查看对应 live Task Log。
让 AI 分析日志
Harbor Skill 可以通过 API 直接读取状态和日志,不需要先手动复制:
使用 $harbor,看看 camera 为什么启动失败。使用 $harbor,看看为什么连不上远端。如果需要把内容交给其他 AI 或聊天窗口,再使用复制功能控制日志长度。
常见问题
- 启动失败时先查看任务日志顶部的命令和工作目录。
- 日志没有及时出现时,检查程序是否缓冲 stdout。
- 远端失败时同时检查 Harbor Log 与 Task Log。
- 图形程序报
could not connect to display时,检查远端桌面会话是否存在,参见远端运行。
日志保存位置
每个 Workspace 使用独立目录:
~/.harbor/workspace/<workspace-id>/log一般不需要直接操作这些文件;通过 Harbor 界面或 API 查看,可以保持本地与远端使用方式一致。