次の方法で共有


プログラムによるログ記録の有効化

ランタイム エンジンでは、パッケージの検証中および実行中にイベント固有の情報のキャプチャを有効にするための LogProvider オブジェクトのコレクションが提供されます。LogProvider オブジェクトは、DtsContainer オブジェクト群、つまり TaskHostPackageForLoopForEachLoop などの各オブジェクトで使用できます。ログ記録は、個別のコンテナでも、パッケージ全体でも有効にすることができます。

コンテナで使用できるログ プロバイダには、いくつかの種類があります。そのため、さまざまな形式でログ情報を作成し、保存することができます。コンテナ オブジェクトをログ記録に登録するには、まずログ記録を有効にし、次にログ プロバイダを選択するという、2 段階の処理が必要です。コンテナの LoggingOptions プロパティおよび LoggingMode プロパティを使用して、ログ記録するイベントを指定し、ログ プロバイダを選択します。

ログ記録の有効化

ログ記録を実行できる各コンテナにある LoggingMode プロパティは、コンテナのイベント情報をイベント ログに記録するかどうかを指定します。このプロパティには DTSLoggingMode 構造の値が割り当てられ、既定でコンテナの親オブジェクトから継承されます。コンテナがパッケージである、つまり親オブジェクトがない場合は、プロパティは UseParentSetting の値を使用します。既定値は Disabled です。

ログ プロバイダの選択

LoggingMode プロパティを Enabled に設定したら、コンテナの SelectedLogProviders コレクションにログ プロバイダを追加し、処理を完了します。LoggingOptions オブジェクトでは SelectedLogProviders コレクションが使用可能で、これにはコンテナで選択されたログ プロバイダが含まれています。プロバイダを作成し、コレクションに追加するには、Add メソッドを呼び出します。このメソッドは、コレクションに追加されたログ プロバイダを返します。各プロバイダには、そのプロバイダに固有の設定があり、そのプロパティを設定するには ConfigString プロパティを使用します。

次の表は、使用可能なログ プロバイダ、その説明、およびプロバイダの ConfigString 情報の一覧です。

プロバイダ 説明 ConfigString プロパティ

SQL Server Profiler

SQL Server プロファイラでキャプチャおよび表示できる SQL トレースを生成します。このプロバイダで使用されるファイル名の既定の拡張子は、.trc です。

設定する必要はありません。

SQL Server

任意の SQL Server データベース内の sysdtslog90 テーブルに、イベント ログのエントリを書き込みます。

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.1");
      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.1")
    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

変更履歴

リリース 履歴

2006 年 7 月 17 日

変更内容 :
  • コードをより長いサンプルと取り替えました。

参照

その他の技術情報

Integration Services ログ プロバイダ
パッケージへのログ機能の実装

ヘルプおよび情報

SQL Server 2005 の参考資料の入手