コンテンツにスキップ

OpenClaw Logging 活用ガイド:トラブルシューティングを効率化する

何か問題が起きたとき、最初に確認すべきなのはログです。ターミナルでログを流し続け、流れてくるエラーメッセージの中に解決のヒントを見つけた経験は、エンジニアなら誰しもあるはずです。

OpenClaw は、解析用の JSON ファイルと、人間が読みやすいコンソール出力の 2 か所にログを記録します。この記事では、それらの探し方と効果的な使い方を紹介します。

  • OpenClaw Gateway がインストールされていること
  • 設定ファイル(config.json5 など)へのアクセス権限

まずは 5 分でできる最小限のログ確認手順です。

  1. ログを表示する 以下のコマンドを実行して、リアルタイムでログを確認します。

    Terminal window
    openclaw logs --follow
  2. ログの保存場所を確認する デフォルトでは /tmp/openclaw/openclaw-YYYY-MM-DD.log に保存されます。

  3. ログレベルを変更する より詳細な情報が必要な場合は、設定ファイルで level を debug に変更します。

デフォルトでは、Gateway は以下のパスにローリングログファイルを書き出します。

/tmp/openclaw/openclaw-YYYY-MM-DD.log

保存場所を変更したい場合は、設定ファイルを編集してください。

{
logging: {
file: "/custom/path/openclaw.log"
}
}
Terminal window
openclaw logs --follow

出力モード:

  • TTY: 色付きで構造化された読みやすい形式
  • Non-TTY: プレーンテキスト
  • --json: 行区切りの JSON 形式
  • --plain: 強制的にプレーンテキストで出力
  • --no-color: ANSI カラーを無効化

Control UI の Logs タブでも同じログを確認できます。openclaw control を実行してブラウザで開いてください。

特定の Channel(例:whatsapp)に絞り込んでログを表示することも可能です。

Terminal window
openclaw channels logs --channel whatsapp
{
logging: {
level: "info", // ファイルログのレベル
consoleLevel: "info", // コンソール出力のレベル
consoleStyle: "pretty" // pretty | compact | json
}
}

レベルの種類: trace, debug, info, warn, error

※ --verbose フラグはコンソール出力にのみ影響し、ファイルログには影響しません。

コンソール出力に含まれる機密情報を保護できます。

{
logging: {
redactSensitive: "tools", // off | tools
redactPatterns: ["sk-.*"] // カスタム正規表現パターン
}
}

注意: 秘匿化は コンソール出力のみ に適用されます。ファイルログは秘匿化されません。

本番環境のモニタリングでは、メトリクスやトレースをオブザーバビリティスタックにエクスポートするのがベストです。

{
diagnostics: {
enabled: true
}
}
{
plugins: {
allow: ["diagnostics-otel"],
entries: {
"diagnostics-otel": { enabled: true }
}
},
diagnostics: {
enabled: true,
otel: {
enabled: true,
endpoint: "http://otel-collector:4318",
serviceName: "openclaw-gateway",
traces: true,
metrics: true,
logs: true
}
}
}

エクスポートされる主なデータ

Section titled “エクスポートされる主なデータ”

Metrics:

  • openclaw.tokens — トークン使用量のカウンター
  • openclaw.cost.usd — コスト追跡
  • openclaw.run.duration_ms — 実行時間のヒストグラム
  • openclaw.message.processed — メッセージ処理のスループット

Traces:

  • openclaw.model.usage — モデル推論の Span
  • openclaw.webhook.processed — Webhook 処理の Span

グローバルなログレベルを上げることなく、特定のコンポーネントのみ詳細なログを出力できます。

{
diagnostics: {
flags: ["telegram.http", "telegram.payload"]
}
}

環境変数でも設定可能です。

Terminal window
OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload

ワイルドカード(telegram.* や *)も使用できます。

”Gateway not reachable” と表示される

Section titled “”Gateway not reachable” と表示される”

以下のコマンドで診断を実行してください。

Terminal window
openclaw doctor
  • Gateway が起動しているか確認してください。
  • logging.file のパスが正しいか、書き込み権限があるか確認してください。

logging.level を debug または trace に設定してください。

{
logging: {
level: "debug"
}
}

--json モードでは、以下のタイプタグが付与されたオブジェクトが出力されます。

Type説明
metaストリームのメタデータ (file, cursor, size)
log解析済みのログエントリ
notice切り捨てやローテーションのヒント
raw解析できなかった生のログ行

メトリクスとスパンのリファレンス

Section titled “メトリクスとスパンのリファレンス”
MetricTypeAttributes
openclaw.tokensCountertype, channel, provider, model
openclaw.cost.usdCounterchannel, provider, model
openclaw.webhook.receivedCounterchannel, webhook
openclaw.message.processedCounterchannel, outcome
SpanKey Attributes
openclaw.model.usagechannel, provider, model, tokens.*
openclaw.webhook.processedchannel, webhook, chatId
openclaw.message.processedchannel, outcome, messageId
openclaw.session.stuckstate, ageMs, sessionId

設定やログの解釈で困ったときは、AI Setup Assistant がお手伝いします。

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。