프로그래밍 방식으로 로깅 설정Enabling Logging Programmatically

런타임 엔진에서는 패키지의 유효성 검사 및 실행 중에 이벤트 관련 정보를 캡처하는 데 사용할 수 있는 LogProvider 개체의 컬렉션을 제공합니다.The run-time engine provides a collection of LogProvider objects that enable event-specific information to be captured during package validation and execution. LogProvider 개체는 DtsContainer, TaskHost, PackageForLoop 개체를 비롯하여 ForEachLoop 개체에서 사용할 수 있습니다.LogProvider objects are available to DtsContainer objects, including the TaskHost, Package, ForLoop, and ForEachLoop objects. 개별 컨테이너나 패키지 전체에 대해 로깅 기능을 사용하도록 설정할 수 있습니다.Logging is enabled on individual containers, or on the whole package.

컨테이너에서 사용할 수 있는 로그 공급자에는 여러 유형이 있습니다.There are several types of log providers that are available for a container to use. 따라서 여러 형식으로 로그 정보를 만들고 저장할 수 있는 유연성이 있습니다.This provides the flexibility to create and store log information in many formats. 컨테이너 개체를 로깅에 참여시키는 과정은 먼저 로깅을 활성화한 후 로그 공급자를 선택하는 두 단계로 이루어집니다.Enlisting a container object in logging is a two-step process: first logging is enabled, and then a log provider is selected. 컨테이너의 LoggingOptionsLoggingMode 속성은 로깅되는 이벤트를 지정하고 로그 공급자를 선택하는 데 사용됩니다.The LoggingOptions and LoggingMode properties of the container are used to specify the logged events and to select the log provider.

로깅 설정Enabling Logging

로깅을 수행할 수 있는 각 컨테이너에 있는 LoggingMode 속성은 컨테이너의 이벤트 정보를 이벤트 로그에 기록할지 여부를 결정합니다.The LoggingMode property, found in each container that can perform logging, determines whether the container's event information is recorded to the event log. 이 속성은 DTSLoggingMode 구조의 값을 할당받으며 기본적으로 컨테이너의 부모에서 상속됩니다.This property is assigned a value from the DTSLoggingMode structure, and is inherited from the container's parent by default. 컨테이너는 패키지, 부모가 없는 경우 속성 사용의 UseParentSetting, 데이터베이스가 기본 인 비활성화합니다.If the container is a package, and therefore has no parent, the property uses the UseParentSetting, which defaults to Disabled.

로그 공급자 선택Selecting a Log Provider

후의 LoggingMode 속성 Enabled, 로그 공급자에 추가 됩니다는 SelectedLogProviders 프로세스를 완료 하려면 컨테이너의 컬렉션입니다.After the LoggingMode property is set to Enabled, a log provider is added to the SelectedLogProviders collection of the container to complete the process. SelectedLogProviders 컬렉션은 LoggingOptions 개체에서 사용할 수 있으며 컨테이너에 대해 선택된 로그 공급자를 포함합니다.The SelectedLogProviders collection is available on the LoggingOptions object, and contains the log providers selected for the container. Add 메서드는 공급자를 만들어 컬렉션에 추가하기 위해 호출됩니다.The Add method is called to create a provider and add it to the collection. 그런 다음 이 메서드는 컬렉션에 추가된 로그 공급자를 반환합니다.The method then returns the log provider that was added to the collection. 각 공급자에는 해당 공급자에 고유한 구성 설정이 있으며 이러한 속성은 ConfigString 속성을 사용하여 설정됩니다.Each provider has configuration settings that are unique to that provider, and these properties are set using the ConfigString property.

다음 표에는 사용할 수 있는 로그 공급자, 해당 설명 및 ConfigString 정보가 나열되어 있습니다.The following table lists the available log providers, their description, and their ConfigString information.

공급자Provider DescriptionDescription ConfigString 속성ConfigString property
SQL Server 프로파일러SQL Server Profiler SQL ServerSQL Server 프로파일러에서 캡처하고 볼 수 있는 SQL 추적을 생성합니다.Generates SQL traces that may be captured and viewed in SQL ServerSQL Server Profiler. 이 공급자의 기본 파일 이름 확장명은 .trc입니다.The default file name extension for this provider is .trc. 구성이 필요하지 않습니다.No configuration is required.
SQL ServerSQL Server 이벤트 로그 항목을 기록는 sysssislog 테이블에 SQL ServerSQL Server 데이터베이스입니다.Writes event log entries to the sysssislog table in any SQL ServerSQL Server database. SQL ServerSQL Server 공급자를 사용하려면 데이터베이스에 대한 연결과 대상 데이터베이스 이름이 지정되어 있어야 합니다. provider requires that the connection to the database be specified, and also the target database name.
텍스트 파일Text File 이벤트 로그 항목을 CSV(쉼표로 구분된 값) 형식으로 ASCII 텍스트 파일에 기록합니다.Writes event log entries to ASCII text files in a comma-separated value (CSV) format. 이 공급자의 기본 파일 이름 확장명은 .log입니다.The default file name extension for this provider is .log. 파일 연결 관리자의 이름입니다.The name of a file connection manager.
Windows 이벤트 로그Windows Event Log 로컬 컴퓨터의 응용 프로그램 로그에 있는 표준 Windows 이벤트 로그에 로깅합니다.Logs to standard Windows Event Log on the local computer in the Application log. 구성이 필요하지 않습니다.No configuration is required.
XML 파일XML File 이벤트 로그 항목을 XML 형식의 파일에 씁니다.Writes event log entries to XML formatted file. 이 공급자의 기본 파일 이름 확장명은 .xml입니다.The default file name extension for this provider is .xml 파일 연결 관리자의 이름입니다.The name of a file connection manager.

이벤트 로그에 포함 하거나 설정 하 여 이벤트 로그에서 제외 된 EventFilterKindEventFilter 컨테이너의 속성입니다.Events are included in or excluded from the event log by setting the EventFilterKind and the EventFilter properties of the container. EventFilterKind 두 값을 포함 하는 구조 ExclusionFilterInclusionFilter, 이벤트는 지를 나타내는에 추가 EventFilter 이벤트 로그에 포함 됩니다.The EventFilterKind structure contains two values, ExclusionFilter and InclusionFilter, that indicate whether the events that are added to the EventFilter are included in the event log. EventFilter 속성은 필터링의 주체인 이벤트의 이름을 포함 하는 문자열 배열을 할당 됩니다.The EventFilter property is then assigned a string array that contains the names of the events that are the subject of the filtering.

다음 코드에서는 패키지에 로깅 기능을 사용하도록 설정하고, SelectedLogProviders 컬렉션에 텍스트 파일에 대한 로그 공급자를 추가하고, 로깅 출력에 포함할 이벤트 목록을 지정합니다.The following code enables logging on a package, adds the log provider for Text files to the SelectedLogProviders collection, and specifies a list of events to include in the logging output.

예제Sample

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  

관련 항목:See Also

Integration Services ( Ssis) 로깅Integration Services (SSIS) Logging