b2c-logs について
`b2c` CLI で Salesforce B2C Commerce インスタンスのログを取得、監視するスキルです。エージェント向けの構造化出力や条件指定に加え、カスタムログやサブディレクトリ内のログも扱えます。
主な機能
- 01JSON 形式でのログ取得
- 02時刻、レベル、テキストによる絞り込み
- 03ログファイルの一覧表示と追跡
- 04カスタムロガーのログ検出
- 05サブディレクトリ内のログ検索
活用シーン
- 01直近のアプリケーションエラーの確認
- 02決済や連携処理のログ検索
- 03インシデント中のログ監視
MCP 対応
同じログ操作は対応する MCP ツールからも実行できます。また、完全なログファイルのダウンロードには `b2c-cli:b2c-webdav` を使う方法が示されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ salesforcecommercecloud/ b2c-developer-tooling --skill b2c-logsインストール後、Claude Code で/b2c-logsを入力して読み込まれたか確認します。
同梱ファイルevals/trigger-evals.json
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
B2C ログスキル
b2c CLI を使用して、Salesforce B2C Commerce インスタンスのログファイルを取得、監視します。logs get コマンドは、エージェント向けに、構造化された JSON 出力でログを非対話的に取得できるよう設計されています。
ヒント:
b2cがグローバルにインストールされていない場合は、代わりにnpx @salesforce/b2c-cliを使用してください(例:npx @salesforce/b2c-cli logs get)。
設定と認証
CLI は、SFCC_* 環境変数(プロジェクトの .env を含む)、選択中のプロジェクトローカルまたは共有の dw.json、および設定プラグインから、対象インスタンスと認証情報を自動検出します。package.json で指定できるのは、機密情報を含まないデフォルト値のみです。通常、--server、--client-id、--client-secret、--username、--password などのフラグは不要です。自動検出された値を上書きする場合にのみ指定してください。
b2c setup inspect を実行すると、解決された設定と各値の取得元を確認できます(スクリプトで使用する場合は --json を指定します。デフォルトではシークレットはマスクされます)。優先順位のルールとトラブルシューティングについては、b2c-cli:b2c-config スキルを参照してください。
エージェント向けログ取得
logs get コマンドは、コーディングエージェント向けに最適化されています。
- ログの取得後、ただちに終了します(非対話型)。
- 構造化された出力を得るための
--jsonをサポートしています。 - 時間、レベル、テキスト検索で絞り込めます。
- IDE でクリックして開けるよう、ファイルパスを自動的に正規化します。
例
最近のログを取得する
# Get last 20 entries from error and customerror logs (default)
b2c logs get
# Get last 50 entries
b2c logs get --count 50
# JSON output for programmatic parsing
b2c logs get --json
時間で絞り込む
# Entries from the last 5 minutes
b2c logs get --since 5m
# Entries from the last 1 hour
b2c logs get --since 1h
# Entries from the last 2 days
b2c logs get --since 2d
# Entries after a specific time (ISO 8601)
b2c logs get --since "2026-01-25T10:00:00"
ログレベルで絞り込む
# Only ERROR level entries
b2c logs get --level ERROR
# ERROR and FATAL entries
b2c logs get --level ERROR --level FATAL
テキストを検索する
# Search for "OrderMgr" in messages
b2c logs get --search OrderMgr
# Search for payment errors
b2c logs get --search "PaymentProcessor"
複数の条件で絞り込む
# Recent errors containing "PaymentProcessor"
b2c logs get --since 1h --level ERROR --search "PaymentProcessor" --json
# Last hour of errors and fatals from specific log types
b2c logs get --filter error --filter warn --since 1h --level ERROR --level FATAL
利用可能なログファイルを一覧表示する
# List all log files
b2c logs list
# List specific log types
b2c logs list --filter error --filter customerror
# List logs in a subdirectory (path-like filter)
b2c logs list --filter internal/server
# JSON output
b2c logs list --json
リアルタイムでログを追跡する(人間向け)
対話型のログ監視を行う場合(エージェント向けではありません):
# Tail error and customerror logs
b2c logs tail
# Tail specific log types
b2c logs tail --filter debug --filter error
# Tail only ERROR and FATAL level entries
b2c logs tail --level ERROR --level FATAL
# Tail with text search
b2c logs tail --search "PaymentProcessor"
# Combined filtering
b2c logs tail --filter customerror --level ERROR --search "OrderMgr"
# Stop with Ctrl+C
ログファイル全体のダウンロード
ログファイル全体をダウンロードするには、JSON 出力の file フィールドを b2c-cli:b2c-webdav とともに使用します。
b2c webdav get error-odspod-0-appserver-20260126.log --root=logs -o -
JSON 出力の構造
--json を使用すると、logs get は次の内容を返します。
{
"count": 1,
"entries": [
{
"file": "error-odspod-0-appserver-20260126.log",
"timestamp": "2026-01-26 04:38:03.022 GMT",
"level": "ERROR",
"message": "PipelineCallServlet|156679877|Sites-Site|...",
"raw": "[2026-01-26 04:38:03.022 GMT] ERROR PipelineCallServlet|..."
}
]
}
| フィールド | 説明 |
|---|---|
file | ソースログファイル名(ファイル全体のダウンロードには b2c-cli:b2c-webdav を使用します) |
level | ログレベル:ERROR、WARN、INFO、DEBUG、FATAL、TRACE |
timestamp | エントリーのタイムスタンプ |
message | ログメッセージ(IDE でクリックして開けるようパスが正規化されています) |
raw | 未加工のログ行 |
ログの種類
一般的なログファイルのプレフィックス:
| プレフィックス | 説明 |
|---|---|
error | システムエラー |
customerror | カスタムスクリプトのエラー(Logger.error()) |
warn | 警告 |
debug | デバッグ出力(有効な場合) |
info | 情報メッセージ |
jobs | ジョブ実行ログ |
api | API の問題と違反 |
deprecation | 非推奨 API の使用 |
quota | クォータに関する警告 |
上記のプレフィックスは、組み込みのログファイルです。さらに、_カスタムロガーカテゴリ_を通じてログを記録するスクリプトは、それぞれ専用の custom- プレフィックス付きファイルに書き込みます。これは customerror とは別のものです。インテグレーションやジョブのコード(決済ゲートウェイ、ERP/OMS/CRM の同期、フィードおよびインポートジョブ)は、ほとんどの場合この方法でログを記録するため、トリアージで必要なエントリは error/customerror ではなく、custom-* ファイルにあることがよくあります。
カスタムログファイル名は次のパターンに従います:
custom-<prefix>-<hostname>-appserver-<date>.log
<prefix> セグメントは、ログを出力するコードで Logger.getLogger(prefix, category) に渡される最初の引数です。そのため、ログファイルから書き込み元のコードを直接特定できます:
| コード | ログファイル | 読み取るためのフィルター |
|---|---|---|
Logger.getLogger('PaymentProcessor', 'payment') | custom-PaymentProcessor-*.log | --filter custom-PaymentProcessor |
Logger.getLogger('PimTaxImport', 'tax') | custom-PimTaxImport-*.log | --filter custom-PimTaxImport |
Logger.getLogger('orderexport', 'export') | custom-orderexport-*.log | --filter custom-orderexport |
(2 番目の引数はログの _カテゴリ_で、設定に使用されます。ファイル名には含まれません。)ロガーの作成方法など、作成側の説明については、b2c:b2c-logging スキルを参照してください。
注:
--filterはファイルのログカテゴリに対して、完全一致ではなく**プレフィックス(前方一致)**で照合します。そのため、--filter custom-はすべてのcustom-*ファイルを対象とし、--filter custom-Paymentはcustom-PaymentProcessorにも一致します。カテゴリは _2 番目_のダッシュまでの部分を取り出して判定するため、カスタムロガー名には単語文字のみを使用します(ダッシュは使用できません)。たとえば、custom-payment-gateway-*.logという名前のファイルは、カテゴリcustom-paymentとして認識されます。特定のカスタムログを読むには、抽出されたプレフィックス全体(例:--filter custom-PimTaxImport)でフィルターし、すべてを対象にするには--filter custom-を使用します。
カスタムログファイルの確認
カスタムログファイルはデフォルトの error/customerror の取得対象ではないため、インテグレーションやジョブを調査する際は明示的に確認してください:
# 1. Enumerate all log files, or narrow to just custom ones
b2c logs list
b2c logs list --filter custom
# 2. Scan the output for an unfamiliar custom-* prefix whose size or
# last-modified time grew when the incident started, then read it
b2c logs get --filter custom-PimTaxImport --since 1h
# 3. Read all custom logs at once when you don't yet know the prefix
b2c logs get --filter custom-
b2c logs list は各ファイルのサイズと最終更新日時を表示するため、インシデント発生時に記録されたカスタムロガーをすばやく見つけるのに最適です。プレフィックスが分かったら、--filter custom-<prefix>(またはすべてを対象にする場合は --filter custom- のみ)でエントリを読み取れます。
logs list の出力が不完全な場合や、インスタンス上の未加工の *.log ファイル名を確認したい場合は、WebDAV を使用してください:
# Enumerate log filenames directly over WebDAV
b2c webdav ls --root logs
サブディレクトリ内のログ
Logs/ ディレクトリには、internal/(例:server、ccp、health、csrf-violations、internalquota)などのサブディレクトリがあります。これらはデフォルトでは一覧表示されません。アクセスするには、/ を含むパス形式の --filter を渡します。すると、ツールはそのサブディレクトリを再帰的に調べ、Logs/ からの相対パスでファイルを照合します。
# All "server" logs under internal/
b2c logs list --filter internal/server
# Everything under internal/ (trailing slash)
b2c logs tail --filter internal/
# Mix a subdirectory filter with normal prefix filters
b2c logs get --filter error --filter internal/server
これは logs list、logs get、logs tail(および対応する MCP ツール)で同じように機能します。
その他のコマンド
使用可能なすべてのコマンドとオプションについては、b2c logs --help を参照してください。
関連スキル
b2c-cli:b2c-webdav- 完全なログファイルをダウンロードするための、WebDAV による直接のファイルアクセスb2c-cli:b2c-config- 設定と認証情報の確認b2c:b2c-logging- 作成側:サーバー側のコードで、custom-*ログファイルを生成するカスタムロガーカテゴリを作成する方法