讀取日誌
在主控台中
開啟一個執行個體並選擇 日誌 頁籤。這個檢視保存容器最近的輸出,在分頁開著時每隔幾秒重新整理一次,並在新的一行送達時捲到最新處。在執行個體還沒進入過 running 之前沒有東西可顯示,面板也會這樣告訴你。
你會拿到的是開機紀錄,以及容器自那之後印出的任何東西:
[2026-07-24 09:12:03] superheat-agent: pulling image pytorch/pytorch:2.4.0-cuda12.4-cudnn9-runtime
[2026-07-24 09:12:07] superheat-agent: image ready, creating container
[2026-07-24 09:12:09] nvidia-smi: detected 2 GPU(s), driver 570.86
[2026-07-24 09:12:10] sshd: listening on 0.0.0.0:40123
[2026-07-24 09:12:11] superheat-agent: instance is ready
當執行個體進入 error、JupyterLab 起不來,或 onstart 指令碼沒有照你預期的做事時,這裡是第一個該看的地方。
透過 API
以下範例使用 $SUPERHEAT_API 與 $SUPERHEAT_KEY,請依 API 總覽 的說明設定。
curl -H "Authorization: Bearer $SUPERHEAT_KEY" \
"$SUPERHEAT_API/v1/instances/$INSTANCE_ID/logs?tail=500"
{
"lines": [
"[2026-07-24 09:12:10] sshd: listening on 0.0.0.0:40123",
"[2026-07-24 09:12:11] superheat-agent: instance is ready"
]
}
| 參數 | 值 |
|---|---|
tail | 要回傳最近的多少行 |
| 範圍 | 1 到 1000 |
| 預設值 | 200 |
超出該範圍的 tail 會被拒絕,而不是被截到邊界值,所以想要最大量就直接要 1000。沒有分頁機制,也沒有辦法回溯到比最後 1000 行更早的地方。這個端點其餘的形狀請見執行個體。
這些是容器日誌
你看到的每一行都是容器自己的輸出 — agent 的佈建步驟,以及工作負載寫到標準輸出或標準錯誤的任何內容。範圍就這麼多。
它們不是你應用程式的日誌檔。如果你的訓練指令碼寫到 /workspace/train.log,或某個框架把檔案輪替到 logs/ 目錄,這些都不會出現在這裡。請透過 SSH 讀取它們:
tail -f /workspace/train.log
基於同樣的理由,基礎映像檔在硬碟上保留了兩個自己的檔案,它們比容器輸出串流包含更多細節:
| 檔案 | 內容 |
|---|---|
/var/log/superheat/jupyter.log | JupyterLab 伺服器的輸出 |
/var/log/superheat/onstart.log | 範本 onstart 指令碼的輸出 |
如果你想讓自己的處理程序出現在主控台的檢視中,請讓它印到標準輸出,而不是只寫進檔案。
什麼會留下來
日誌屬於執行個體。停止會保留它們,並加上一行記錄容器已停止、硬碟已保留;啟動會延續同一條串流。被銷毀的執行個體會從 執行個體 清單中消失,主控台的檢視也就再也連不上 — 在銷毀之前先把你需要的讀出來。請見停止與銷毀的差別。