データ収集のデバッグログを有効にする

診断ログは、実装が実行されるランタイムでのSDK コマンド、タグの実行、警告、エラーの説明に役立ちます。 リクエストまたは処理も検査する必要がある場合は、​ リクエスト検査と一緒に使用します。 どこから始めればよいかわからない場合は、​ デバッグとトラブルシューティングの概要を参照してください。

ロギング方法の選択 choose-a-logging-method

実装
ログを有効にする
どこから読むか
範囲の設定とリセット
Web SDKを直接実装
debugEnabled、setDebug、alloy_debug クエリパラメーター、またはデバッガー
ブラウザーコンソール
debugEnabledは、その設定を実行するすべての訪問者に適用されます。 setDebugとalloy_debugはブラウザーのタブにのみ適用され、そのタブ内の同一生成元のページの読み込み全体で保持され、debugEnabledよりも優先されます。 終了時には明示的に無効にします。
タグ(拡張機能で管理されるWeb SDKを含む)
_satellite.setDebug(true)
ブラウザーコンソール
ブラウザーにのみ適用されます。 _satellite.setDebug(false)を実行するかサイトデータをクリアするまで、オリジンのローカルストレージに保存されるので、ページ読み込み全体にわたって保持され、ブラウザーが再起動します。
Server SDK
debugEnabled または setDebug
サーバーコンソール/ログ出力
設定は、インスタンスとリクエストハンドルのベースラインを設定します。 ランタイムの変更は、呼び出されたインスタンスまたはハンドルにのみ影響します。 設定は、コードが再適用しない限り、プロセスの再起動を維持できません。
Mobile SDK
MobileCore.setLogLevel
Android LogcatまたはiOS開発コンソール
実行中のアプリ内に適用されます。 各起動の初期化時に必要なレベルを設定します。デバッグ後にエラーレベルのログを復元します。

Web SDK、タグライブラリ、およびServer SDKのデバッグログは、デフォルトでは無効になっています。 Mobile SDKのデフォルトのロギングは、「ログなし」ではなく「エラーレベル」です。

IMPORTANT
デバッグメッセージには、イベントデータと訪問者識別子を含めることができます。 ローカルまたは開発専用のデバッグを好み、詳細な実稼動ログを避け、出力を共有する前に機密情報を削除します。 ログは、Edge Networkまたはダウンストリームサービスがイベントを受信して処理したことを証明するものではありません。

ライブラリによるログ記録を有効にする enable-logging

実装で使用するライブラリのセクションを展開します。 各セクションでは、ロギングを有効にする方法、出力の読み取り場所、ロギングをオフにする方法について説明します。

Web SDK

Web SDKの診断出力は、次の方法で制御されます。 スタンドアロンのWeb SDK実装では、タグライブラリログを有効にしません。

configure コマンド のdebugEnabled:既存のconfigure呼び出しでdebugEnabledをtrueに設定します。 この設定は、開発環境で便利です。 サイトのコードにデプロイすると、その設定を実行する訪問者のログ記録が有効になります。

code language-js
alloy("configure", {
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
  debugEnabled: true
});

設定値をfalseに変更するか、後続のデプロイメントで設定を省略して、デフォルト値を復元します。 同じインスタンスでconfigureを2回実行してログ記録を切り替えないでください。代わりにsetDebugを使用してください。 ローカルデバッグの上書きは、設定値よりも優先される可能性があります。 構成参照については、debugEnabledを参照してください。

setDebug コマンド: ブラウザーコンソールで適切なWeb SDK インスタンスに対してコマンドを実行します。

code language-js
alloy("setDebug", { enabled: true });

終了したら、無効にします。

code language-js
alloy("setDebug", { enabled: false });

コンソールでこのコマンドを実行すると、他の訪問者のブラウザーではなく、ローカルインスタンスが変更されます。 デプロイされたサイトコードに同じコマンドを入れると、そのコードを実行する訪問者に影響します。 ブラウザーストレージが利用可能な場合、ローカルオーバーライドは、そのインスタンスのページロード全体で、同一オリジンのタブセッション内で保持できます。 詳しくは、setDebugを参照してください。

alloy_debug クエリ文字列パラメーター: ページ URLにalloy_debug=trueを追加してから、ページを読み込みます。

code language-text
https://example.com/?alloy_debug=true

URLに既にクエリパラメーターがある場合は、&alloy_debug=trueを使用します。 このパラメーターを使用すると、デプロイされたコードを変更せずにローカルにログを記録できます。 Web SDKは、各インスタンスの作成時にパラメーターを読み取るので、ページ上のすべてのWeb SDK インスタンスに適用されます。 ブラウザーストレージが使用可能な場合、設定はタブの同一生成元セッションに対して保持されるため、パラメーターを削除するだけではログ記録は無効になりません。 alloy_debug=falseでページを読み込むか、setDebugをenabled: falseで実行して無効にします。 URLにまだalloy_debug=trueが含まれている場合は、再読み込みすると、再度ログ記録が有効になります。

Adobe Experience Platform Debugger: Adobe Experience Platform Debuggerを開き、「Web SDK」セクションを選択し、「設定」タブでデバッグを有効にします。 終了したら、オプションをオフにします。

​ デバッガーでWeb SDKのデバッグを有効にする

この手順により、診断出力が有効になります。デバッガーを使用してリクエストまたはEdge インスペクションを行う方法については、​ データ収集リクエストの調査を参照してください。

TagsとWeb SDK タグ拡張機能

タグライブラリを含むページで、ブラウザーコンソールで次を実行します。

code language-js
_satellite.setDebug(true);

このコマンドは、_satellite.logger出力を含むタグライブラリメッセージを公開します。 Web SDK タグ拡張機能によって管理されるWeb SDK インスタンスの場合、拡張機能はSDKの設定時にタグデバッグモードを使用し、その後のデバッグモードの変更をデバッグモードに転送します。 スタンドアロンまたは外部で設定されたWeb SDK インスタンスのデバッグをオンにすると、タグログ記録も有効になると仮定しないでください。

Web SDK タグ拡張機能は、タグ設定UIにデバッグトグルを提供しません。 拡張機能が管理するインスタンスに対しては、コンソールメソッドを使用します。 タグのルールから外します。

タグデバッグモードと対応する拡張機能で管理されるSDKのログ記録を無効にするには:

code language-js
_satellite.setDebug(false);

タグデバッグモードは、ページの生成元のブラウザーのローカルストレージに保存されます。 ページの読み込み後もサイトのデータを無効にするか消去するまでブラウザーの再起動は維持され、他の訪問者のログ記録は有効になりません。 範囲と永続性の詳細については、_satellite.setDebug()を参照してください。

タグライブラリは、タグデバッグモードが変更されたときにのみ拡張機能に通知します。 タグデバッグモードが既に有効になっていても、Web SDK メッセージが見つからない場合は、setDebugまたはalloy_debugからのWeb SDKの上書きがSDKのログオフになっている可能性があります。 _satellite.setDebug(false)を実行してから_satellite.setDebug(true)するか、オーバーライドを設定するのと同じWeb SDK メソッドを使用します。

Server SDK

Server SDKは、診断出力を訪問者のブラウザーではなく、サーバーコンソールに書き込みます。

既存のサーバーサイド configure呼び出しでdebugEnabled: trueを設定して、インスタンスのログ記録を有効にし、その設定から作成されたforRequest ハンドルを有効にします。 デフォルトは false です。 完全な設定例については、debugEnabledを参照してください。

ターゲット調査の場合、forRequestから返されたリクエスト範囲のハンドルに対してsetDebugを呼び出します。 そのハンドルに対してのみ変更をログに記録するので、すべての訪問者に対して有効にせずに1つのリクエストをデバッグできます。

code language-js
const visitor = alloy.forRequest({ request: req });

await visitor.setDebug({ enabled: true });
await visitor.sendEvent({
  xdm: { eventType: "web.webpagedetails.pageViews" }
});

トップレベルのインスタンスでsetDebugを呼び出すと、そのインスタンスで直接行われた呼び出しのみがログに記録されます。このログは、リクエスト処理では無効にするか、プロセスが再起動するまで変更されません。 すべてのリクエストハンドルのベースラインを変更するには、サーバーの設定でdebugEnabledを更新します。

メッセージは、[alloy]などの角括弧で囲まれたインスタンスを識別し、設定、メソッドの入力/結果、警告、エラーを含めます。 サーバープロセスの出力またはホスティング環境がルーティングするログの宛先を確認します。

Mobile SDK

モバイルコアのsetLogLevel APIを使用して、診断用の冗長性を選択します。 Androidの既定値はLoggingMode.ERROR、iOSの既定値はLogLevel.errorです。 問題を再現する前に、アプリの初期化中に必要なレベルを設定します。

Android:開発アプリで詳細なログインを有効にします:

code language-kotlin
import com.adobe.marketing.mobile.LoggingMode
import com.adobe.marketing.mobile.MobileCore

MobileCore.setLogLevel(LoggingMode.VERBOSE)

実行中のアプリプロセスに関するAndroid Studioの​ Logcat ​の出力を表示します。 モバイル SDK メッセージはAdobeExperienceSDK タグを使用するので、tag:AdobeExperienceSDKでフィルタリングし、ログビューアでデバッグメッセージと詳細メッセージが許可されていることを確認します。 終了時にエラーレベルのログ記録を復元します:

code language-kotlin
MobileCore.setLogLevel(LoggingMode.ERROR)

iOS:開発アプリでトレースログを有効にします:

code language-swift
import AEPCore
import AEPServices

MobileCore.setLogLevel(.trace)

実行中のアプリのコンソールをXcodeで表示し、AEP SDKをフィルタリングします。 終了時にエラーレベルのログ記録を復元します:

code language-swift
MobileCore.setLogLevel(.error)

エラーレベルに戻ると、診断出力が減少します。エラーは抑制されません。 これらの呼び出しは、他のインストールではなく、実行中のアプリのログインを変更します。 初期化コードが、次回のローンチまたは実稼動ビルドで詳細なログ記録を再度有効にしないようにします。

Java、Objective-C、サポートされているレベル、バージョン固有の詳細については、Mobile Core API リファレンス ​を参照してください。 React NativeまたはFlutterの場合は、ネイティブ呼び出しを直接ラッパーコードにコピーするのではなく、​ モバイルSDK ラッパーによって公開されるAPIを使用します。 ランタイムコンソール出力ではなく接続されたイベントインスペクションについては、Assuranceを参照してください。

診断出力の読み取りとトラブルシューティング read-output

次の識別子を使用して、ビジー状態のログ出力でSDKを検索し、メッセージをタグ付けします。 Web SDKまたはServer SDK インスタンスの名前を変更した場合は、alloyではなく、その名前を探します。

ソース
を探します
Web SDK
[alloy]などの角括弧で囲まれたインスタンス名の後に、コンポーネントメッセージのコンポーネント名が続きます
タグ
🚀の後に、元のルール、拡張子、またはデータ要素の名前が括弧内に続きます。 _satellite.loggerを参照してください。
Server SDK
インスタンス名を角括弧で囲みます([alloy])
Mobile SDK (Android)
Logcat タグ AdobeExperienceSDK
Mobile SDK (iOS)
AEP SDKの後に、ログレベルと拡張ラベルが続きます
  • 出力先を確認してください: ブラウザー設定でサーバーまたはネイティブアプリのログが公開されません。 適切なブラウザーページ、サーバープロセスまたはアプリプロセスを選択します。
  • ログレベルを確認: Web SDK メッセージでは、ブラウザーがデフォルトで表示する標準のコンソールレベルが使用されます。 _satellite.logger.debug()からのメッセージにはコンソールの詳細レベルが必要です。Mobile SDKのデバッグおよび詳細メッセージには、これらのレベルを含むログビューアが必要です。
  • アクションの前にログを有効にする:ログオンを有効にしたからといって、既存のメッセージは再作成されません。 有効にした後で問題を再現します。
  • アクティブなコントロールを確認する: Web SDKのローカルの上書きが設定に取って代わる可能性があります。 タグとスタンドアロンのSDK インスタンスは、必ずしも設定を共有しません。
  • ログとトランスポートエビデンスの区別: ログは、レシートを証明せずにコマンドが実行されたか、トランスポートエビデンスが選択されたことを示すことができます。 リクエスト、応答、サポートされている処理ビューを調べるには、​ データ収集リクエストの調査を参照してください。

Web SDK ​ モニタリングフック ​は別のプログラマティックメカニズムであり、デバッグログ設定に関係なく実行されます。 生のAPI クライアント、データストリーム、およびイベント転送は、1つのユニバーサル SDK ログスイッチを共有しません。アプリケーションログまたは​ サービス診断を適切に使用してください。

recommendation-more-help
experience-platform-help-collection