Gateway
Gateway のログ記録
ロギング
ユーザー向けの概要(CLI + Control UI + 設定)については、/loggingを参照してください。
OpenClawには2つのログ出力先があります。
- コンソール出力 - ターミナル / デバッグUIに表示される内容です。
- ファイルログ - Gatewayロガーによって書き込まれるJSON Linesです。
起動時に、Gatewayは解決済みのデフォルトエージェントモデルと、新しいセッションに影響するモードのデフォルト値をログに記録します。
agent model: openai/gpt-5.6-sol (thinking=medium, fast=on)thinkingはデフォルトエージェント、モデルパラメーター、またはグローバルなエージェントのデフォルト値から取得され、未設定の場合はmediumと表示されます。fastはデフォルトエージェントまたはモデルのfastModeパラメーターから取得されます。
ファイルベースのロガー
- デフォルトのローテーションログファイルは
/tmp/openclaw/配下にあります(1日1ファイル)。ファイル名はopenclaw-YYYY-MM-DD.logで、Gatewayホストのローカルタイムゾーンに基づく日付が使用されます。そのディレクトリが安全でないか書き込み不能な場合(所有者が不正、全ユーザーが書き込み可能、シンボリックリンク)、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のログタブは、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.redactSensitive:off|tools(デフォルト:tools)logging.redactPatterns: 正規表現文字列の配列(デフォルトを上書き)- 生の正規表現文字列(自動的に
giを適用)、またはカスタムフラグを指定する/pattern/flagsを使用します。 - 一致箇所は先頭6文字と末尾4文字を残してマスキングされます(18文字以上の値)。短い値は
***になります。 - デフォルトでは、一般的なキー代入、CLIフラグ、JSONフィールド、Bearerヘッダー、PEMブロック、主要ベンダーのトークンプレフィックス、および決済認証情報のフィールド名(カード番号、CVC/CVV、共有決済トークン、決済認証情報)が対象です。
- 生の正規表現文字列(自動的に
一部の安全境界では、logging.redactSensitiveの設定に関係なく常にマスキングされます。対象は、Control UIのツール呼び出しイベント、sessions_historyツールの出力、診断サポートのエクスポート、プロバイダーエラーの観測、exec承認コマンドの表示、Gateway WebSocketプロトコルログです。これらの出力先でも追加パターンとしてlogging.redactPatternsが適用されますが、redactSensitive: "off"を指定しても未加工のシークレットは出力されません。
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を使用)。
これにより、ファイルログの安定性を保ちながら、対話型出力を確認しやすくできます。