패키지에서 로깅 구현
업데이트: 2007년 9월 15일
SQL Server 2005 Integration Services(SSIS)에는 런타임 이벤트 발생 시 로그 항목을 쓰고 사용자 지정 메시지를 작성할 수도 있는 로깅 기능이 포함되어 있습니다.
Integration Services는 다양한 로그 공급자 집합을 지원하며 사용자 지정 로그 공급자를 만드는 기능을 제공합니다. Integration Services 로그 공급자는 텍스트 파일, SQL Server 프로파일러, SQL Server, Windows 이벤트 로그 또는 XML 파일에 로그 항목을 쓸 수 있습니다.
로그는 패키지와 연결되며 패키지 수준에서 구성됩니다. 패키지에 있는 각 작업이나 컨테이너는 패키지 로그에 정보를 로깅할 수 있습니다. 패키지 자체가 로깅을 사용하도록 설정되지 않았더라도 패키지의 작업 및 컨테이너는 로깅을 사용하도록 설정될 수 있습니다. 예를 들어 부모 패키지가 로깅을 사용하지 않더라도 SQL 실행 작업은 로깅을 사용할 수 있습니다. 패키지, 컨테이너 또는 작업은 여러 로그에 쓸 수 있습니다. 패키지에만 로깅을 사용하도록 설정하거나 패키지에 포함된 개별 작업 또는 컨테이너에 로깅을 사용하도록 설정할 수 있습니다.
이벤트 또는 사용자 지정 메시지 로깅을 사용자 지정하기 위해 Integration Services는 로그 항목에 포함할 자주 로깅되는 정보를 담은 스키마를 제공합니다. Integration Services 로그 스키마는 로깅할 수 있는 정보를 정의합니다. 로그 스키마에서 요소를 선택하여 각 로그 항목으로 사용할 수 있습니다.
패키지 및 패키지에 포함된 컨테이너와 작업은 같은 정보를 로깅할 필요가 없으며 같은 패키지나 컨테이너 내에 있는 작업이 서로 다른 정보를 로깅할 수 있습니다. 예를 들어 패키지는 시작할 때 작업자 정보를 로깅하고, 한 작업은 작업이 실패한 컨테이너 또는 작업 이름을 로깅하며, 다른 작업은 오류가 발생한 시각을 로깅할 수 있습니다. 패키지 및 패키지에 포함된 컨테이너와 작업이 여러 로그를 사용하는 경우 같은 정보가 모든 로그에 기록됩니다.
필요에 따라 로깅할 이벤트 및 각 이벤트에 대해 로깅할 정보를 지정하여 로깅 수준을 선택할 수 있습니다. 일부 이벤트가 다른 이벤트보다 더 유용한 정보를 제공하는 경우가 있습니다. 예를 들어 이벤트의 중요성에 따라 PreExecute 이벤트에 대해서는 컴퓨터 및 작업자 이름만 로깅하고 Error 이벤트에 대해서는 모든 사용 가능한 정보를 로깅할 수 있습니다.
로그 파일이 많은 디스크 공간을 사용하거나 과도한 로깅 작업을 하여 성능이 저하되는 것을 막기 위해 로깅할 특정 이벤트 및 정보 항목을 지정하여 로깅을 제한할 수 있습니다. 예를 들어 각 오류의 날짜 및 컴퓨터 이름만 캡처하도록 로그를 구성할 수 있습니다.
SSIS 디자이너에서 SSIS 로그 구성 대화 상자를 사용하여 로깅 옵션을 정의할 수 있습니다.
로그 스키마
다음 표에서는 로그 스키마의 요소에 대해 설명합니다.
요소 | 설명 |
---|---|
Computer |
로그 이벤트가 발생한 컴퓨터의 이름입니다. |
Operator |
패키지를 시작한 사용자의 ID입니다. |
SourceName |
로그 이벤트가 발생한 컨테이너 또는 작업의 이름입니다. |
SourceID |
로그 이벤트가 발생한 패키지, For Loop, Foreach Loop, 시퀀스 컨테이너 또는 작업의 고유 식별자입니다. |
ExecutionID |
패키지 실행 인스턴스의 GUID입니다. |
MessageText |
로그 항목과 관련된 메시지입니다. |
DataBytes |
로그 항목과 관련된 바이트 배열입니다. 이 필드의 의미는 로그 항목에 따라 다릅니다. |
다음 표에서는 SSIS 로그 구성 대화 상자의 자세히 탭에 나타나지 않는 로그 스키마의 세 가지 추가 요소에 대해 설명합니다.
요소 | 설명 |
---|---|
StartTime |
컨테이너 또는 작업이 시작된 시간입니다. |
EndTime |
컨테이너 또는 작업이 중지된 시간입니다. |
DataCode |
일반적으로 다음과 같은 컨테이너 또는 작업 실행 결과를 나타내는 DTSExecResult 열거형 값을 포함하는 옵션 정수 값입니다.
|
로그 항목
Integration Services는 미리 정의된 이벤트에 대한 로그 항목을 지원하고 여러 Integration Services 개체에 대한 사용자 지정 로그 항목을 제공합니다. SSIS 디자이너의 SSIS 로그 구성 대화 상자에 이러한 이벤트와 사용자 지정 로그 항목이 나열됩니다.
다음 표에서는 런타임 이벤트가 발생했을 때 로그 항목을 쓰도록 설정할 수 있는 미리 정의된 이벤트에 대해 설명합니다. 이러한 로그 항목은 실행 파일과 패키지, 그리고 패키지에 포함된 작업 및 컨테이너에 적용됩니다. 로그 항목의 이름은 발생한 런타임 이벤트의 이름, 즉 로그 항목을 쓰도록 만든 이벤트의 이름과 같습니다.
이벤트 | 설명 |
---|---|
OnError |
오류가 발생할 때 로그 항목을 기록합니다. |
OnExecStatusChanged |
실행 파일의 실행 상태가 변경될 때 로그 항목을 기록합니다. |
OnInformation |
정보 보고를 위한 실행 파일의 유효성 검사 및 실행 중에 로그 항목을 기록합니다. |
OnPostExecute |
실행 파일이 실행을 완료한 직후에 로그 항목을 기록합니다. |
OnPostValidate |
실행 파일의 유효성 검사가 완료될 때 로그 항목을 기록합니다. |
OnPreExecute |
실행 파일이 실행하기 직전에 로그 항목을 기록합니다. |
OnPreValidate |
실행 파일의 유효성 검사가 시작할 때 로그 항목을 기록합니다. |
OnProgress |
실행 파일이 특정 진행 상태에 도달했을 때 로그 항목을 기록합니다. |
OnQueryCancel |
실행을 취소할 수 있는 작업 처리 과정의 모든 분기 시점에 로그 항목을 기록합니다. |
OnTaskFailed |
작업이 실패할 때 로그 항목을 기록합니다. |
OnVariableValueChanged |
변수의 값이 변경될 때 로그 항목을 기록합니다. |
OnWarning |
경고가 발생할 때 로그 항목을 기록합니다. |
패키지 및 여러 작업에는 로깅을 사용하도록 설정할 수 있는 사용자 지정 로그 항목이 있습니다. 예를 들어 메일 보내기 작업은 작업이 시작되어 전자 메일 메시지를 보내기 전에 정보를 로깅하는 SendMailTaskBegin 사용자 지정 로그 항목을 제공합니다. 자세한 내용은 로깅할 메시지 사용자 지정을 참조하십시오.
패키지 복사본 구분
로그 데이터에는 로그 항목이 속하는 패키지의 이름 및 GUID가 포함됩니다. 기존 패키지를 복사하여 새 패키지를 만들 경우 기존 패키지의 이름 및 GUID도 복사됩니다. 따라서 이름과 GUID가 동일한 두 개의 패키지가 있을 수 있으며 이로 인해 로그 데이터에 있는 패키지를 구분하기가 어려울 수 있습니다.
이러한 혼동을 피하려면 새 패키지의 이름 및 GUID를 업데이트해야 합니다. Business Intelligence Development Studio의 ID 속성에서 GUID를 다시 생성하고 속성 창에서 Name 속성 값을 업데이트할 수 있습니다. 또한 GUID 및 이름을 프로그래밍 방식으로 변경하거나 dtutil 명령 프롬프트를 사용하여 변경할 수 있습니다. 자세한 내용은 패키지 속성 설정 및 dtutil 유틸리티를 참조하십시오.
부모 로깅 옵션
작업, For Loop, Foreach Loop 및 시퀀스 컨테이너의 로깅 옵션은 해당하는 패키지 또는 부모 컨테이너와 일치하는 경우가 많습니다. 이러한 경우 부모 컨테이너에서 로깅 옵션을 상속받도록 구성할 수 있습니다. 예를 들어 For Loop 컨테이너에 포함된 SQL 실행 작업은 For Loop 컨테이너에 설정된 로깅 옵션을 사용할 수 있습니다. 부모 로깅 옵션을 사용하려면 컨테이너의 LoggingMode 속성을 UseParentSetting으로 설정합니다. Business Intelligence Development Studio의 속성 창 또는 SSIS 디자이너의 SSIS 로그 구성 대화 상자를 통해 이 속성을 설정할 수 있습니다.
로깅 템플릿
SSIS 로그 구성 대화 상자에서 자주 사용하는 로깅 구성을 템플릿으로 만들어 저장한 다음 여러 패키지에서 사용할 수 있습니다. 이렇게 하면 여러 패키지에 대해 일관된 로깅 정책을 적용할 수 있으며 템플릿을 업데이트한 다음 적용하여 여러 패키지에 대한 로그 설정을 쉽게 수정할 수 있습니다. 템플릿은 XML 파일로 저장됩니다.
SSIS 로그 구성 대화 상자를 사용하여 로깅을 구성하려면
패키지 및 패키지에 속한 작업에 대해 로깅을 사용하도록 설정합니다. 로깅은 패키지, 컨테이너 및 작업 수준에서 발생할 수 있습니다. 패키지, 컨테이너 및 작업에 대해 서로 다른 로그를 지정할 수 있습니다.
로그 공급자를 선택하고 패키지에 대한 로그를 추가합니다. 로그는 패키지 수준에서만 만들 수 있으며 작업이나 컨테이너는 패키지에 대해 만들어진 로그 중 하나를 사용해야 합니다. 각 로그는 텍스트 파일, SQL Server 프로파일러, SQL Server, Windows 이벤트 로그, XML 파일 중 하나의 로그 공급자와 연결됩니다. 자세한 내용은 방법: 패키지에서 로깅 활성화를 참조하십시오.
로그에서 캡처할 각 이벤트 및 해당 이벤트에 대한 로그 스키마 정보를 선택합니다. 자세한 내용은 방법: 컨테이너에서 로깅 구성을 참조하십시오.
패키지를 개발하는 동안 로그 항목을 보려면
참고 항목
개념
관련 자료
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2007년 9월 15일 |
|
2005년 12월 5일 |
|