日誌
使用者導向的概覽(CLI + Control UI + 設定)請參閱 /logging。
OpenClaw 有兩個日誌「輸出面」:
- 終端輸出(你在 terminal / Debug UI 看到的)。
- 檔案日誌(JSON lines),由 gateway logger 寫入。
檔案日誌
- 預設在
/tmp/openclaw/下產生滾動式日誌檔(每天一個):openclaw-YYYY-MM-DD.log- 日期使用 gateway 主機的本地時區。
- 日誌檔路徑和等級可透過
~/.openclaw/openclaw.json設定:logging.filelogging.level
檔案格式是每行一個 JSON 物件。
Control UI 的 Logs 頁籤透過 gateway(logs.tail)讀取此檔案。
CLI 也可以做同樣的事:
openclaw logs --follow
Verbose 與日誌等級
- 檔案日誌完全由
logging.level控制。 --verbose只影響終端的詳細程度(和 WS 日誌樣式);它不會提高檔案日誌等級。- 要在檔案日誌中記錄 verbose 等級的細節,將
logging.level設為debug或trace。
終端擷取
CLI 會擷取 console.log/info/warn/error/debug/trace 並寫入檔案日誌,同時仍然印到 stdout/stderr。
你可以獨立調整終端的詳細程度:
logging.consoleLevel(預設info)logging.consoleStyle(pretty|compact|json)
工具摘要脫敏
詳細的工具摘要(例如 🛠️ Exec: ...)可以在輸出到終端前遮蔽敏感 token。這只針對工具輸出,不影響檔案日誌。
logging.redactSensitive:off|tools(預設:tools)logging.redactPatterns:正規表示式字串陣列(會覆寫預設值)- 使用原始正規表示式字串(自動加
giflag),或用/pattern/flags自訂 flag。 - 匹配結果的遮蔽方式:保留前 6 + 後 4 個字元(長度 >= 18 時),否則顯示
***。 - 預設涵蓋常見的金鑰賦值、CLI flag、JSON 欄位、bearer header、PEM 區塊和常見的 token 前綴。
- 使用原始正規表示式字串(自動加
Gateway WebSocket 日誌
Gateway 以兩種模式印出 WebSocket 協定日誌:
- 一般模式(無
--verbose):只印「有意義的」RPC 結果:- 錯誤(
ok=false) - 慢速呼叫(預設閾值:
>= 50ms) - 解析錯誤
- 錯誤(
- Verbose 模式(
--verbose):印出所有 WS 請求/回應流量。
WS 日誌樣式
openclaw gateway 支援 per-gateway 的樣式切換:
--ws-log auto(預設):一般模式最佳化輸出;verbose 模式使用精簡格式--ws-log compact:verbose 時使用精簡格式(請求/回應配對)--ws-log full:verbose 時完整的逐訊框輸出--compact:--ws-log compact的別名
範例:
# 最佳化(只有錯誤/慢速呼叫)
openclaw gateway
# 顯示所有 WS 流量(配對格式)
openclaw gateway --verbose --ws-log compact
# 顯示所有 WS 流量(完整中繼資料)
openclaw gateway --verbose --ws-log full
終端格式化(子系統日誌)
終端格式化器會偵測 TTY,印出一致的前綴行。子系統 logger 讓輸出分組且易於掃描。
行為:
- 每行都有子系統前綴(例如
[gateway]、[canvas]、[tailscale]) - 子系統顏色(每個子系統穩定配色)加上等級顏色
- TTY 或類 rich terminal 環境時啟用色彩(
TERM/COLORTERM/TERM_PROGRAM),尊重NO_COLOR - 縮短的子系統前綴:省略開頭的
gateway/+channels/,只保留最後 2 段(例如whatsapp/outbound) - 子 logger 按子系統分(自動前綴 + 結構化欄位
{ subsystem }) logRaw()用於 QR/UX 輸出(無前綴、無格式化)- 終端樣式(
pretty | compact | json) - 終端日誌等級與檔案日誌等級分開(
logging.level設為debug/trace時檔案保留完整細節) - WhatsApp 訊息內容在
debug等級記錄(用--verbose才看得到)
這讓既有的檔案日誌保持穩定,同時互動式輸出變得易於掃描。