ログ

ユーザー向けの概要(CLI+コントロールUI+設定)については/loggingを参照してください。

OpenClawには2つのログ「サーフェス」があります:

  • コンソール出力(ターミナル/デバッグUIに表示される内容)
  • ファイルログ(JSONライン形式)ゲートウェイロガーによって書き込まれます。

ファイルベースのロガー

  • デフォルトのローリングログファイルは/tmp/openclaw/配下(1日1ファイル):openclaw-YYYY-MM-DD.log
    • 日付はゲートウェイホストのローカルタイムゾーンを使用。
  • ログファイルのパスとレベルは~/.openclaw/openclaw.jsonで設定可能:
    • logging.file
    • logging.level

ファイル形式は1行に1つのJSONオブジェクトです。

コントロールUIのLogsタブはゲートウェイ経由(logs.tail)でこのファイルをテールします。 CLIでも同様に可能です:

openclaw logs --follow

Verboseとログレベルの関係

  • ファイルログlogging.levelによってのみ制御されます。
  • --verboseコンソールの詳細度(およびWSログスタイル)にのみ影響し、ファイルログレベルは上げません
  • verbose限定の詳細をファイルログにキャプチャするには、logging.leveldebugまたはtraceに設定してください。

コンソールキャプチャ

CLIはconsole.log/info/warn/error/debug/traceをキャプチャしてファイルログに書き込み、同時にstdout/stderrにも出力します。

コンソールの詳細度は以下で独立して調整可能:

  • logging.consoleLevel(デフォルトinfo
  • logging.consoleStylepretty | compact | json

ツールサマリーのリダクション

詳細なツールサマリー(例:🛠️ Exec: ...)は、コンソールストリームに出力される前に機密トークンをマスクできます。これはツールのみの機能であり、ファイルログは変更しません。

  • logging.redactSensitiveoff | tools(デフォルト:tools
  • logging.redactPatterns:正規表現文字列の配列(デフォルトをオーバーライド)
    • 生の正規表現文字列(自動gi)を使用するか、カスタムフラグが必要な場合は/pattern/flags
    • マッチは先頭6文字+末尾4文字を保持してマスク(長さ18以上の場合)。それ以外は***
    • デフォルトでは一般的なキー代入、CLIフラグ、JSONフィールド、Bearerヘッダー、PEMブロック、一般的なトークンプレフィックスをカバー。

Gateway WebSocketログ

ゲートウェイはWebSocketプロトコルログを2つのモードで出力します:

  • 通常モード(--verboseなし):「興味深い」RPC結果のみ表示:
    • エラー(ok=false
    • 遅い呼び出し(デフォルト閾値:>= 50ms
    • パースエラー
  • Verboseモード(--verbose:すべてのWS リクエスト/レスポンストラフィックを表示。

WSログスタイル

openclaw 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対応で、一貫したプレフィックス付きの行を出力します。サブシステムロガーにより出力がグループ化され、スキャンしやすくなります。

動作:

  • 各行にサブシステムプレフィックス(例:[gateway][canvas][tailscale]
  • サブシステムカラー(サブシステムごとに安定)+レベルカラー
  • TTYまたはリッチターミナル環境TERM/COLORTERM/TERM_PROGRAM)でカラー表示。NO_COLORに対応
  • 短縮サブシステムプレフィックス:先頭のgateway/channels/を省略し、末尾2セグメントを保持(例:whatsapp/outbound
  • サブシステムごとのサブロガー(自動プレフィックス+構造化フィールド{ subsystem }
  • logRaw():QR/UX出力用(プレフィックスなし、フォーマットなし)
  • コンソールスタイル(例:pretty | compact | json
  • コンソールログレベルはファイルログレベルとは独立(logging.leveldebug/traceに設定するとファイルに完全な詳細を保持)
  • WhatsAppメッセージ本文debugレベルでログ出力(表示するには--verboseを使用)

これにより既存のファイルログを安定させつつ、インタラクティブ出力をスキャンしやすくします。