1. 拡張xConnectログ

SQLレベルのログ記録を構成する

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

拡張xConnectログ機能を使用すると、xConnectで実行されたSQLコマンドを追跡してトラブルシューティングを改善できます。デフォルトでは無効になっています。

SQLログ出力には、次の各コマンドの前にログエントリが含まれます。

  • ストアド・プロシージャ名。

  • 接続パラメータ。

  • コマンド・パラメーターの値。

SQLログ出力には、次の各コマンドの後にログエントリが含まれます。

  • ストアド・プロシージャ名。

  • 出力コマンド・パラメーターの値。

  • コマンドによって返される結果。

ログ出力には、生成されたGUID (一意のトレースID) が含まれています。このトレースIDを使用して、関連コマンドのログを検索できます。

メモ

一括コピー・コマンドの場合、トレースIDのないログ・エントリーは1つだけです。

ログ出力には、次のものが含まれます。

  • ストアド・プロシージャの名前。

  • 接続パラメータ(RangeShardMapNameShardLocationReadPreference)。

  • コマンドパラメータ(たとえば、contacts\interactionsフィールドの値や連絡先識別子)。

  • 出力パラメータ。

  • ストアド・プロシージャによって返された結果。

SQLレベルのログ記録を有効にする

SQLレベルのログ記録を有効にするには、次のようにします。

  • ファイルの名前を\App_Data\Config\Sitecore\Collection\sc.Xdb.Collection.Data.Sql.Logging.xmlに変更して、ファイル\App_Data\Config\Sitecore\Collection\sc.Xdb.Collection.Data.Sql.Logging.xml.disabledを有効にします。

SQLレベルのログ出力の例

SQLログ出力には、各コマンドの前にログ・エントリーが含まれています。例えば:

2021-05-31 18:55:46.400 +03:00 [Verbose] xConnect SQL trace: ab716c04 
{ 
  "StoredProcedure": "[xdb_collection].[SaveContactIdentifiersIndexTvp]", 
  "ConnectionParameters": { 
    "RangeShardMapName": "ContactIdentifiersIndexShardMap", 
    "ShardLocation": "[DataSource=. Database=xcp_Xdb.Collection.Shard0]", 
    "ReadPreference": 0 
  }, 

  "CommandParameters": [ 
    { 
      "Name": "@ContactIdentifiersIndex", 
      "Value": [ 
        { 
          "[Identifier]": "NzNmM2U5ZWItMjNiZi00MDVhLWE3NjItMGQ3YzZlM2FiZTdh", 
          "[Source]": { 
            "IsNull": false, 
            "Value": "Alias", 
            "LCID": 1033, 
            "CultureInfo": "en-US", 
            "CompareInfo": { 
              "Name": "en-US", 
              "LCID": 1033, 
              "Version": { 
                "FullVersion": 393743, 
                "SortId": "00000001-57ee-1e5c-00b4-d0000bb1e11e" 
              } 
            }, 
            "SqlCompareOptions": 25 
          }, 
          "[ContactId]": "8257996d-b0bb-0000-0000-06257344ff88", 
          "[ChangeState]": 2, 
          "[ShardKey]": "TA==" 
        } 
      ] 
    }, 
    { 
      "Name": "@LockDateTime", 
      "Value": "5/31/2021 3:56:45 PM" 
    } 
  ] 
} 

2021-05-31 18:55:46.579 +03:00 [Verbose] xConnect SQL trace: ab716c04 
{ 

  "StoredProcedure": "[xdb_collection].[SaveContactIdentifiersIndexTvp]", 

  "OutputParameters": null, 

  "Result": [] 
} 

ログ・レベルの変更

拡張xConnect SQLログ エントリのレベルは、デフォルトでTraceです。

ログ・レベルを変更するには、次のようにします。

  • 構成ファイル \App_Data\Config\Sitecore\Collection\sc.Xdb.Collection.Data.Sql.Logging.xmlを開き、Settings/Sitecore/XConnect/Collection/Services/LoggingDbExecutorOptions/LogLevelノードの値をTraceDebug、またはInformationに変更します。

    <LogLevel>Trace</LogLevel>     

トレースIDの長さの変更

トレースIDのデフォルトの長さは8文字です。最大長は32文字です。

トレースIDの長さを変更するには、次のようにします。

  • 設定ファイル \App_Data\Config\Sitecore\Collection\sc.Xdb.Collection.Data.Sql.Logging.xmlを開き、

    Settings/Sitecore/XConnect/Collection/Services/LoggingDbExecutorOptions/TraceIdLengthノード。

    <TraceIdLength>8</TraceIdLength> 

パラメータのロギングをスキップする

ログでスキップするコマンドパラメータのリストを設定できます。たとえば、次のようになります。

  • 機密データ (ユーザー名、パスワード、クレジット カード番号など)。

  • 大きな長さのデータ (テーブル値パラメータなど)。

  • システムデータ (同期トークンなど)。

  • 収集の必要のないその他の無関係なデータ。

ログでスキップするパラメータを指定するには:

  • 設定ファイル\App_Data\Config\Sitecore\Collection\sc.Xdb.Collection.Data.Sql.Logging.xmlを開き、Settings/Sitecore/XConnect/Collection/Services/DbExecutorLogBuilder/Options/SkipParametersノードを変更して、スキップするパラメータ名のリストをカンマで区切って追加します。

    <SkipParameters>UserName,Password</SkipParameters>

結果のログ記録をスキップする

コマンド結果のログ記録をスキップできます。これには、長いデータ (連絡先のコレクションやインタラクションなど) やその他の役に立たないデータが含まれる場合があります。

手記

デフォルトでは、データ抽出コマンドと変更追跡コマンドによって生成された結果のログ記録はありません。

ログでスキップするコマンド結果を指定するには、次のようにします。

  • 構成ファイル\App_Data\Config\Sitecore\Collection\sc.Xdb.Collection.Data.Sql.Logging.xmlを開き、新しい子ノード (一意の名前) を追加し、その値 (アセンブリ修飾.NETの種類) を指定して、Settings/Sitecore/XConnect/Collection/Services/DbExecutorLogBuilder/Options/SkipResultsノードを変更します。

    <SkipResults> 
        <ContactDataExtraction> 
            System.Collections.Generic.IReadOnlyCollection`1[[Sitecore.Xdb.Collection.Model.ContactDataRecord, Sitecore.Xdb.Collection]], mscorlib  
        </ContactDataExtraction> 
    
        <InteractionDataExtraction> 
            System.Collections.Generic.IReadOnlyCollection`1[[Sitecore.Xdb.Collection.Model.InteractionDataRecord, Sitecore.Xdb.Collection]], mscorlib 
        </InteractionDataExtraction> 
    
        <DeviceProfileDataExtraction>
            System.Collections.Generic.IReadOnlyCollection`1[[Sitecore.Xdb.Collection.Model.DeviceProfileDataRecord, Sitecore.Xdb.Collection]], mscorlib 
        </DeviceProfileDataExtraction> 
    
        <ChangeTracking>
            Sitecore.Xdb.Collection.Data.SqlServer.Model.ChangeTracking.Changes, Sitecore.Xdb.Collection.Data.SqlServer 
        </ChangeTracking> 
    </SkipResults>

長時間実行コマンドのログ記録を構成する

実行時間の長いコマンドは、警告レベルと時間の長さで追跡およびログに記録されます。

コマンドが長時間実行されていると見なされる最小しきい値を指定するには、次のようにします。

  • 設定ファイルApp_Data\config\sitecore\Collection\sc.Xdb.Collection.Data.Sql.xmlを開き、Settings/Sitecore/XConnect/Collection/Services/IDbExecutor/Options/CommandExecutionTimeThresholdノードを変更して秒数を指定します。

    <CommandExecutionTimeThreshold>10</CommandExecutionTimeThreshold>
この記事を改善するための提案がある場合は、 お知らせください!