Gateway
Gateway のログ記録
ロギング
ユーザー向けの概要(CLI + Control UI + 設定)については、/loggingを参照してください。
OpenClaw には 2 つのログ出力先があります。
- コンソール出力 - ターミナル / Debug UI に表示される内容。
- ファイルログ - Gateway ロガーによって書き込まれる JSON 行。
起動時に、Gateway は解決済みのデフォルトエージェントモデルと、新しいセッションに影響するモードのデフォルト値をログに記録します。
エージェントモデル: openai/gpt-5.6-sol (thinking=medium, fast=on)thinking はデフォルトエージェント、モデルパラメーター、またはグローバルなエージェントのデフォルト値から取得されます。未設定の場合は medium と表示されます。fast はデフォルトエージェント、またはモデルの fastMode パラメーターから取得されます。
ファイルベースのロガー
- デフォルトのローテーションログファイルは
/tmp/openclaw/配下にあり(1 日につき 1 ファイル)、Gateway ホストのローカルタイムゾーンに基づいて日付が付けられます。デフォルトプロファイルはopenclaw-YYYY-MM-DD.logを使用し、名前付きプロファイルはopenclaw-<profile>-YYYY-MM-DD.log(例:openclaw-dev-YYYY-MM-DD.log)を使用します。そのディレクトリが安全でないか書き込み不能な場合(所有者が不正、誰でも書き込み可能、シンボリックリンク)、OpenClaw は代わりにユーザースコープのos.tmpdir()/openclaw-<uid>パスへフォールバックします。Windows では常に、その OS 一時ディレクトリへのフォールバックを使用します。 - アクティブなログファイルは
logging.maxFileBytes(デフォルト: 100 MB)でローテーションされ、番号付きアーカイブを最大 5 個(.1から.5)保持し、新しいアクティブファイルへの書き込みを続けます。 - ログファイルのパスとレベルは
~/.openclaw/openclaw.jsonで設定します:logging.file、logging.level。 - ファイル形式は、1 行につき 1 つの JSON オブジェクトです。
トーク、リアルタイム音声、および管理対象ルームのコードパスは、運用デバッグと OTLP ログエクスポートを目的とした、範囲を限定したライフサイクル記録に共有ファイルロガーを使用します。トランスクリプトのテキスト、音声ペイロード、ターン ID、通話 ID、およびプロバイダー項目 ID がログレコードにコピーされることはありません。
Control UI の Logs タブは、Gateway(logs.tail)経由でこのファイルを追尾します。CLI も同様です。
openclaw logs --follow詳細出力とログレベル
- ファイルログは
logging.levelのみによって制御されます。 --verboseはコンソールの詳細度(および WS ログの形式)にのみ影響し、ファイルログレベルは引き上げません。- 詳細出力でのみ得られる情報をファイルログに記録するには、
logging.levelをdebugまたはtraceに設定します。 - トレースログには、Plugin ツールファクトリの準備など、選択されたホットパスの診断タイミング概要も含まれます。/tools/plugin#slow-plugin-tool-setupを参照してください。
コンソールのキャプチャ
CLI は console.log/info/warn/error/debug/trace をキャプチャしてファイルログに書き込み、同時に stdout/stderr にも出力します。
コンソールの詳細度は個別に調整できます。
logging.consoleLevel(デフォルトinfo)logging.consoleStyle(pretty|compact|json。デフォルトは TTY 上ではpretty、それ以外ではcompact)
マスキング
OpenClaw は、ログまたはトランスクリプト出力がプロセス外へ出る前に、機密トークンをマスキングします。このマスキングポリシーは、コンソール、ファイルログ、OTLP ログレコード、およびセッショントランスクリプトのテキスト出力先に適用されるため、一致したシークレット値は、JSONL 行またはメッセージがディスクに書き込まれる前にマスキングされます。
- 機密値のマスキングは常に有効です。
logging.redactPatterns: 正規表現文字列の配列(デフォルトを上書き)- 生の正規表現文字列(自動
gi)、またはカスタムフラグ用の/pattern/flagsを使用します。 - 一致箇所は、先頭 6 文字と末尾 4 文字を残してマスキングされます(18 文字以上の値)。それより短い値は
***になります。 - デフォルトでは、一般的なキー代入、CLI フラグ、JSON フィールド、Bearer ヘッダー、PEM ブロック、主要ベンダーのトークンプレフィックス、および決済認証情報のフィールド名(カード番号、CVC/CVV、共有決済トークン、決済認証情報)を対象とします。
- 生の正規表現文字列(自動
Control UI のツール呼び出しイベント、sessions_history の出力、診断エクスポート、プロバイダーエラー、exec 承認表示、Gateway WebSocket ログなどの安全境界では、常にマスキングが行われます。logging.redactPatterns を使用すると、デプロイ固有のパターンを追加できます。
Gateway WebSocket ログ
Gateway は WebSocket プロトコルログを 2 つのモードで出力します。
- 通常モード(
--verboseなし): 「注目すべき」RPC 結果のみを出力します。エラー(ok=false)、遅い呼び出し(デフォルトしきい値:>= 50ms)、および解析エラーです。 - 詳細モード(
--verbose): すべての WS リクエスト/レスポンストラフィックを出力します。
WS ログ形式
openclaw gateway は Gateway ごとの形式切り替えをサポートします。
--ws-log auto(デフォルト): 通常モードは最適化され、詳細モードではコンパクトな出力を使用します。--ws-log compact: 詳細モードでのコンパクトな出力(リクエスト/レスポンスのペア)。--ws-log full: 詳細モードでのフレームごとの完全な出力。--compact:--ws-log compactのエイリアス。
# 最適化(エラー/遅い呼び出しのみ)openclaw gateway # すべての WS トラフィックを表示(ペア形式)openclaw gateway --verbose --ws-log compact # すべての WS トラフィックを表示(完全なメタデータ)openclaw gateway --verbose --ws-log fullコンソールの書式設定(サブシステムロギング)
コンソールフォーマッターは TTY を認識し、一貫したプレフィックス付きの行を出力します。サブシステムロガーにより、出力はグループ化され、確認しやすく保たれます。
- すべての行に付くサブシステムプレフィックス(例:
[gateway]、[canvas]、[tailscale])。 - サブシステムの色(名前からハッシュ化され、サブシステムごとに固定)とレベル別の色。
- 出力先が TTY の場合、または環境がリッチターミナルのように見える場合(
TERM/COLORTERM/TERM_PROGRAM)に色を使用します。NO_COLORとFORCE_COLORが尊重されます。 - 短縮されたサブシステムプレフィックス: 先頭の
gateway/、channels/、またはproviders/セグメントを削除し、残りのセグメントのうち末尾最大 2 つを保持します(例:channels/turn/kernelはturn/kernelと表示されます)。既知のチャンネルサブシステム(telegram、whatsapp、slackなど)は、常にチャンネル名だけに短縮されます。 - サブシステムごとのサブロガー(自動プレフィックス + 構造化フィールド
{ subsystem })。 - QR/UX 出力用の
logRaw()(プレフィックスなし、書式設定なし)。 - コンソール形式:
pretty|compact|json。 - コンソールログレベルはファイルログレベルとは別です(
logging.levelがdebug/traceの場合も、ファイルには完全な詳細が保持されます)。 - WhatsApp のメッセージ本文は
debugレベルでログに記録されます(表示するには--verboseを使用します)。
これにより、ファイルログの安定性を維持しながら、対話型出力を確認しやすくできます。