---
title: "SQLレベルのログ設定"
slug: "configure-sql-level-logging"
abstract: "xConnect SQLレベルのログを用いてSQLコマンドを追跡する方法。"
---
# SQLレベルのログ設定

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

SQLのログ出力には、以下の各コマンドの前にログエントリが含まれています:

-   ストアドプロシージャ名。
-   接続パラメータ。
-   コマンドパラメータの値。

SQLのログ出力には、以下の各コマンドの後にログエントリが含まれています:

-   ストアドプロシージャ名。
-   出力コマンドパラメータの値。
-   コマンドから結果が返された。

ログ出力には生成されたGUID(一意のトレースID)が含まれています。このトレースIDを使って関連コマンドのログを見つけることができます。

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

ログ出力は以下の通りです:

-   ストアドプロシージャ名です。
-   接続パラメータ(RangeShardMapName、ShardLocation、ReadPreference)です。
-   コマンドパラメータ(例えば、連絡先/インタラクションフィールド、値、連絡先識別子など)。
-   出力パラメータ。
-   結果はストアドプロシージャによって返されます。

## 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ノードの値をTrace、Debug、または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\`1Sitecore.Xdb.Collection.Model.ContactDataRecord, Sitecore.Xdb.Collection, mscorlib
     </ContactDataExtraction>
    
     <InteractionDataExtraction>
     System.Collections.Generic.IReadOnlyCollection\`1Sitecore.Xdb.Collection.Model.InteractionDataRecord, Sitecore.Xdb.Collection, mscorlib
     </InteractionDataExtraction>
    
     <DeviceProfileDataExtraction>
     System.Collections.Generic.IReadOnlyCollection\`1Sitecore.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>