적용 대상: Azure Data Factory의 SQL Server
SSIS Integration Runtime
런타임 엔진은 패키지 유효성 검사 및 실행 중에 이벤트별 정보를 캡처할 수 있도록 하는 개체 컬렉션을 LogProvider 제공합니다. LogProvider개체는 , Package및 ForLoopForEachLoop 개체를 비롯한 개체에 TaskHost사용할 수 있습니다DtsContainer. 로깅은 개별 컨테이너 또는 전체 패키지에서 사용하도록 설정됩니다.
컨테이너에서 사용할 수 있는 여러 유형의 로그 공급자가 있습니다. 이렇게 하면 로그 정보를 여러 형식으로 유연하게 만들고 저장할 수 있습니다. 로깅에 컨테이너 개체를 등록하는 것은 첫 번째 로깅을 사용하도록 설정한 다음 로그 공급자를 선택하는 2단계 프로세스입니다. LoggingMode 컨테이너 및 속성은 LoggingOptions 기록된 이벤트를 지정하고 로그 공급자를 선택하는 데 사용됩니다.
로깅 설정
로깅을 수행할 수 있는 각 컨테이너에 있는 LoggingMode 속성은 컨테이너의 이벤트 정보를 이벤트 로그에 기록할지 여부를 결정합니다. 이 속성은 구조체의 값이 DTSLoggingMode 할당되며 기본적으로 컨테이너의 부모에서 상속됩니다. 컨테이너가 패키지라서 부모가 없는 경우 이 속성은 기본값이 Disabled인 UseParentSetting을 사용합니다.
로그 공급자 선택
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 | 파일 연결 관리자의 이름입니다. |
이벤트는 EventFilterKind 및 컨테이너의 EventFilter 속성을 설정하여 이벤트 로그에 포함되거나 제외됩니다. EventFilterKind 구조는 EventFilter에 추가되는 이벤트가 이벤트 로그에 포함되는지 여부를 나타내는 두 값, ExclusionFilter 및 InclusionFilter를 포함합니다. 그런 다음 EventFilter 속성에는 필터링의 주체인 이벤트의 이름이 포함된 문자열 배열이 할당됩니다.
다음 코드는 패키지에 대한 로깅을 사용하도록 설정하고, Text 파일의 로그 공급자를 SelectedLogProviders 컬렉션에 추가하고, 로깅 출력에 포함할 이벤트 목록을 지정합니다.
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