ログ

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

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

  • コンソール出力(ターミナル/Debug UIで表示されるもの)。
  • ファイルログ(JSON行)ゲートウェイロガーによって書き込まれます。

ファイルベースロガー

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

ファイルフォーマットは1行に1つのJSONオブジェクトです。

Control 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.consoleStyle(pretty | compact | json)

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

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

  • logging.redactSensitive: off | tools(デフォルト: tools)
  • logging.redactPatterns: regex文字列の配列(デフォルトをオーバーライド)
    • 生のregex文字列を使用(自動gi)、またはカスタムフラグが必要な場合は/pattern/flags
    • マッチは最初の6文字と最後の4文字を保持してマスクされます(長さ >= 18)、それ以外は***
    • デフォルトは一般的なキー割り当て、CLIフラグ、JSONフィールド、bearerヘッダー、PEMブロック、一般的なトークンプレフィックスをカバーします。

ゲートウェイWebSocketログ

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

  • 通常モード(--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を使用して表示)

これにより、既存のファイルログを安定させながら、インタラクティブな出力をスキャン可能に保ちます。