適用対象: SQL Server
Azure Data Factory の SSIS 統合ランタイム
ランタイム エンジンでは、パッケージの検証中および実行中にイベント固有の情報のキャプチャを有効にするための LogProvider オブジェクトのコレクションが提供されます。 LogProvider オブジェクトは、DtsContainer オブジェクト群、つまり TaskHost、Package、ForLoop、ForEachLoop などの各オブジェクトで使用できます。 ログ記録は、個別のコンテナーでも、パッケージ全体でも有効にすることができます。
コンテナーで使用できるログ プロバイダーには、いくつかの種類があります。 そのため、さまざまな形式でログ情報を作成し、保存することができます。 コンテナー オブジェクトをログ記録に登録するには、まずログ記録を有効にし、次にログ プロバイダーを選択するという、2 段階の処理が必要です。 コンテナーの LoggingOptions プロパティおよび LoggingMode プロパティを使用して、ログ記録するイベントを指定し、ログ プロバイダーを選択します。
ログ記録の有効化
ログ記録を実行できる各コンテナーにある LoggingMode プロパティは、コンテナーのイベント情報をイベント ログに記録するかどうかを指定します。 このプロパティには DTSLoggingMode 構造の値が割り当てられ、既定でコンテナーの親オブジェクトから継承されます。 コンテナーがパッケージであるため、親オブジェクトがない場合、プロパティは UseParentSetting を使用します。既定値は Disabled です。
ログ プロバイダーの選択
LoggingMode プロパティを Enabled に設定したら、コンテナーの SelectedLogProviders コレクションにログ プロバイダーを追加し、処理を完了します。 SelectedLogProviders オブジェクトでは LoggingOptions コレクションが使用可能で、これにはコンテナーで選択されたログ プロバイダーが含まれています。 プロバイダーを作成し、コレクションに追加するには、Add メソッドを呼び出します。 このメソッドは、コレクションに追加されたログ プロバイダーを返します。 それぞれのプロバイダーには、そのプロバイダーに特有の構成設定があります。これらのプロパティは、ConfigString プロパティを使用して設定します。
次の表に、使用可能なログ プロバイダー、説明、および ConfigString 情報を示します。
| プロバイダー | 説明 | ConfigString プロパティ |
|---|---|---|
| SQL Server プロファイラー | SQL Server Profiler でキャプチャし表示できる SQL トレースを生成します。 このプロバイダーで使用されるファイル名の既定の拡張子は、.trc です。 | 構成は必要ありません。 |
| SQL Server | イベント ログ エントリを SQL Server データベースの sysssislog テーブルに書き込みます。 | SQL Server プロバイダーは、データベースへの接続と対象データベースの名前を指定する必要があります。 |
| テキスト ファイル | イベント ログ エントリをコンマ区切り (CSV) 形式で ASCII テキスト ファイルに書き込みます。 このプロバイダーで使用されるファイル名の既定の拡張子は、.log です。 | ファイル接続マネージャーの名前。 |
| Windows イベント ログ | ローカル コンピューター上のアプリケーション ログの標準 Windows イベント ログにログを記録します。 | 構成は必要ありません。 |
| XML ファイル | イベント ログ エントリを XML 形式ファイルに書き込みます。 このプロバイダーの既定のファイル名拡張子は .xml です。 | ファイル接続マネージャーの名前。 |
イベント ログのイベントを含めたり除外するには、コンテナーの EventFilterKind および EventFilter プロパティを設定します。 EventFilterKind 構造体には、ExclusionFilter および InclusionFilter という 2 つの値が含まれており、EventFilter に追加されるイベントがイベント ログに含まれるかどうかを示します。 次に、フィルター選択の対象となるイベントの名前を含む文字配列を EventFilter プロパティに割り当てます。
次のコードは、パッケージのログ記録を有効にし、SelectedLogProviders コレクションにテキスト ファイルのログ プロバイダーを追加し、ログ出力に含めるイベントの一覧を指定します。
サンプル
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SqlServer.Dts.Samples
{
class Program
{
static void Main(string[] args)
{
Package p = new Package();
ConnectionManager loggingConnection = p.Connections.Add("FILE");
loggingConnection.ConnectionString = @"C:\SSISPackageLog.txt";
LogProvider provider = p.LogProviders.Add("DTS.LogProviderTextFile.2");
provider.ConfigString = loggingConnection.Name;
p.LoggingOptions.SelectedLogProviders.Add(provider);
p.LoggingOptions.EventFilterKind = DTSEventFilterKind.Inclusion;
p.LoggingOptions.EventFilter = new String[] { "OnPreExecute",
"OnPostExecute", "OnError", "OnWarning", "OnInformation" };
p.LoggingMode = DTSLoggingMode.Enabled;
// Add tasks and other objects to the package.
}
}
}
Imports Microsoft.SqlServer.Dts.Runtime
Module Module1
Sub Main()
Dim p As Package = New Package()
Dim loggingConnection As ConnectionManager = p.Connections.Add("FILE")
loggingConnection.ConnectionString = "C:\SSISPackageLog.txt"
Dim provider As LogProvider = p.LogProviders.Add("DTS.LogProviderTextFile.2")
provider.ConfigString = loggingConnection.Name
p.LoggingOptions.SelectedLogProviders.Add(provider)
p.LoggingOptions.EventFilterKind = DTSEventFilterKind.Inclusion
p.LoggingOptions.EventFilter = New String() {"OnPreExecute", _
"OnPostExecute", "OnError", "OnWarning", "OnInformation"}
p.LoggingMode = DTSLoggingMode.Enabled
' Add tasks and other objects to the package.
End Sub
End Module