프로그래밍 방식으로 로깅 설정

적용 대상: Azure Data Factory SSIS Integration Runtime SQL Server

런타임 엔진에서는 패키지의 유효성 검사 및 실행 중에 이벤트 관련 정보를 캡처하는 데 사용할 수 있는 LogProvider 개체의 컬렉션을 제공합니다. LogProvider 개체는 DtsContainer, TaskHost, PackageForLoop 개체를 비롯하여 ForEachLoop 개체에서 사용할 수 있습니다. 개별 컨테이너나 패키지 전체에 대해 로깅 기능을 사용하도록 설정할 수 있습니다.

컨테이너에서 사용할 수 있는 로그 공급자에는 여러 유형이 있습니다. 따라서 여러 형식으로 로그 정보를 만들고 저장할 수 있는 유연성이 있습니다. 컨테이너 개체를 로깅에 참여시키는 과정은 먼저 로깅을 활성화한 후 로그 공급자를 선택하는 두 단계로 이루어집니다. 컨테이너의 LoggingOptionsLoggingMode 속성은 로깅되는 이벤트를 지정하고 로그 공급자를 선택하는 데 사용됩니다.

로깅 설정

로깅을 수행할 수 있는 각 컨테이너에 있는 LoggingMode 속성은 컨테이너의 이벤트 정보를 이벤트 로그에 기록할지 여부를 결정합니다. 이 속성은 DTSLoggingMode 구조의 값을 할당받으며 기본적으로 컨테이너의 부모에서 상속됩니다. 컨테이너가 패키지라서 부모가 없는 경우 이 속성은 기본값이 DisabledUseParentSetting을 사용합니다.

로그 공급자 선택

LoggingMode 속성이 Enabled로 설정되면 컨테이너의 SelectedLogProviders 컬렉션에 로그 공급자가 추가되면서 프로세스가 완료됩니다. SelectedLogProviders 컬렉션은 LoggingOptions 개체에서 사용할 수 있으며 컨테이너에 대해 선택된 로그 공급자를 포함합니다. Add 메서드는 공급자를 만들어 컬렉션에 추가하기 위해 호출됩니다. 그런 다음 이 메서드는 컬렉션에 추가된 로그 공급자를 반환합니다. 각 공급자에는 해당 공급자에 고유한 구성 설정이 있으며 이러한 속성은 ConfigString 속성을 사용하여 설정됩니다.

다음 표에는 사용할 수 있는 로그 공급자, 해당 설명 및 ConfigString 정보가 나열되어 있습니다.

공급자 설명 ConfigString 속성
SQL Server Profiler SQL Server Profiler에서 캡처하고 볼 수 있는 SQL 추적 파일을 생성합니다. 이 공급자의 기본 파일 이름 확장명은 .trc입니다. 구성이 필요하지 않습니다.
SQL Server SQL Server 데이터베이스의 sysssislog 테이블에 이벤트 로그 항목을 기록합니다. SQL Server 공급자를 사용하려면 데이터베이스에 대한 연결과 대상 데이터베이스 이름이 지정되어 있어야 합니다.
텍스트 파일 이벤트 로그 항목을 CSV(쉼표로 구분된 값) 형식으로 ASCII 텍스트 파일에 기록합니다. 이 공급자의 기본 파일 이름 확장명은 .log입니다. 파일 연결 관리자의 이름입니다.
Windows 이벤트 로그 로컬 컴퓨터의 애플리케이션 로그에 있는 표준 Windows 이벤트 로그에 로깅합니다. 구성이 필요하지 않습니다.
XML 파일 이벤트 로그 항목을 XML 형식의 파일에 씁니다. 이 공급자의 기본 파일 이름 확장명은 .xml입니다. 파일 연결 관리자의 이름입니다.

컨테이너의 EventFilterKindEventFilter 속성을 설정하여 이벤트를 이벤트 로그에 포함하거나 이벤트 로그에서 제외할 수 있습니다. EventFilterKind 구조는 EventFilter에 추가되는 이벤트가 이벤트 로그에 포함되는지 여부를 나타내는 두 값, ExclusionFilterInclusionFilter를 포함합니다. 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  

참고 항목

Integration Services(SSIS) 로깅