カスタム ログ プロバイダーの作成
適用対象: SQL Server Azure Data Factory の SSIS 統合ランタイム
Integration Services ランタイム環境には広範なログ記録機能があります。 ログを使用すると、パッケージの実行中に発生するイベントをキャプチャできます。 Integration Services では、さまざまなログ プロバイダーを使用でき、ログを作成して XML、テキスト、データベースなどの形式で保存したり、Windows イベント ログに格納したりできます。 これらのログ プロバイダーまたは出力形式の中に要件を満たすものがない場合は、カスタム ログ プロバイダーを作成できます。
カスタム ログ プロバイダーの作成手順は、Integration Services の他のカスタム オブジェクトの作成手順と同様です。
基本クラスを継承する新しいクラスを作成します。 ログ プロバイダー用の基本クラスは LogProviderBase です。
クラスに、オブジェクトの種類を識別する属性を適用します。 ログ プロバイダー用の属性は DtsLogProviderAttribute です。
基本クラスのメソッドとプロパティの実装をオーバーライドします。 ログ プロバイダーでは、ConfigString プロパティ、OpenLog メソッド、Log メソッド、および CloseLog メソッドが対象です。
カスタム ログ プロバイダーのカスタム ユーザー インターフェイスは、SQL Server Integration Services では実装されていません。
カスタム ログ プロバイダーの概要
プロジェクトおよびクラスの作成
すべてのマネージド ログ プロバイダーは LogProviderBase 基本クラスから派生するため、カスタム ログ プロバイダーを作成するには、最初に任意のマネージド プログラミング言語でクラス ライブラリ プロジェクトを作成し、基本クラスを継承するクラスを作成します。 この派生クラスで、基本クラスのメソッドとプロパティをオーバーライドして、カスタム機能を実装します。
プロジェクトを構成し、生成するアセンブリを厳密な名前のキー ファイルで署名します。
Note
多くの Integration Services ログ プロバイダーには、カスタム ユーザー インターフェイスがあります。カスタム ユーザー インターフェイスには IDtsLogProviderUI が実装され、[SSIS ログの構成] ダイアログ ボックスの [構成] ボックスが、使用可能な接続マネージャーがフィルター選択されたドロップダウン リストに置き換えられます。 ただし、カスタム ログ プロバイダーのカスタム ユーザー インターフェイスは、Integration Services では実装されていません。
DtsLogProvider 属性の適用
作成したクラスに DtsLogProviderAttribute 属性を適用して、そのクラスがログ プロバイダーとして識別されるようにします。 この属性には、ログ プロバイダーの名前や説明など、デザイン時の情報を指定します。 この属性の DisplayName プロパティと Description プロパティは、SQL Server Data Tools (SSDT) でパッケージのログ記録を構成するときに、[SSIS ログの構成] エディターに表示される [名前] 列と [説明] 列に対応します。
重要
この属性の LogProviderType プロパティは使用されません。 ただし、このプロパティには値を入力する必要があります。そうしないと、使用可能なログ プロバイダーの一覧にカスタム ログ プロバイダーが表示されません。
Note
Integration Services では、カスタム ログ プロバイダーのカスタム ユーザー インターフェイスは実装されていません。そのため、UITypeName の DtsLogProviderAttribute プロパティに値を指定しても、影響がありません。
<DtsLogProvider(DisplayName:="MyLogProvider", Description:="A simple log provider.", LogProviderType:="Custom")> _
Public Class MyLogProvider
Inherits LogProviderBase
' TODO: Override the base class methods.
End Class
[DtsLogProvider(DisplayName="MyLogProvider", Description="A simple log provider.", LogProviderType="Custom")]
public class MyLogProvider : LogProviderBase
{
// TODO: Override the base class methods.
}
カスタム ログ プロバイダーの作成、配置、およびデバッグ
Integration Services でカスタム ログ プロバイダーを作成、配置、およびデバッグする手順は、その他の種類のカスタム オブジェクトで必要な手順とほとんど同様です。 詳細については、「カスタム オブジェクトのビルド、配置、デバッグ」を参照してください。