ログ
ユーザー向けの概要(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.levelをdebugまたは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.levelがdebug/traceに設定されている場合、完全な詳細を保持)
- WhatsAppメッセージ本文はdebugでログされます(--verboseを使用して表示)
これにより、既存のファイルログを安定させながら、インタラクティブな出力をスキャン可能に保ちます。