다음을 통해 공유


SetupWriteTextLogError 호출

SetupWriteTextLogError 는 SetupAPI 관련 오류 또는 Win32 오류에 대한 정보를 SetupAPI 텍스트 로그에 씁니다. SetupWriteTextLogError 는 텍스트 로그에 두 개의 연속 항목을 씁니다. 첫 번째 항목은 SetupWriteTextLog 에서 작성한 것과 동일한 형식의 동일한 정보를 포함하고 두 번째 항목은 해당 오류 코드와 오류에 대한 사용자에게 친숙한 설명을 기록합니다.

SetupWriteTextLogError를 호출하기 위해 애플리케이션은 SetupWriteTextLog를 호출하기 위해 제공하는 것과 동일한 정보를 제공하고 SetupAPI 관련 오류 또는 Win32 오류 값을 제공합니다.

SetupWriteTextLogError 는 다음 형식으로 첫 번째 로그 항목을 씁니다.

entry_prefix time_stamp 범주 ****들여쓰기 formatted-message

SetupWriteTextLogError 는 두 번째 로그 항목을 다음 형식으로 작성합니다.

entry_prefix time_stamp 범주 **들여쓰기 **오류:error-number error-description

위치:

  • entry_prefix, 타임스탬프를, 범주, 들여쓰기 및 서식이 지정된 메시지 필드는 텍스트 로그 섹션 본문의 형식에 설명 필드와 동일합니다.

  • 오류 번호 필드에는 오류 번호가 포함됩니다.

  • 오류 설명 필드에는 오류에 대한 사용자에게 친숙한 설명이 포함되어 있습니다.

다음 예제에서는 애플리케이션이 일반적으로 SetupWriteTextLogError 를 호출하여 텍스트 로그의 오류에 대한 정보를 기록하는 방법을 보여줍니다. 예제에서 사용되는 오류는 시스템 시작 오류입니다. 애플리케이션은 SetupWriteTextLogError를 호출하여 다음 매개 변수 값을 제공합니다.

  • LogTokenSetupGetThreadLogToken 을 호출하여 가져온 로그 토큰 값으로 설정되거나 로그 토큰에 설명된 시스템 정의 로그 토큰 값 중 하나입니다.

  • 범주 는 TXTLOG_VENDOR 설정됩니다. 이는 공급업체에서 제공하는 애플리케이션에서 로그 항목이 생성되었음을 나타냅니다. 이벤트 범주는 텍스트 로그에 대한 이벤트 범주 사용에서 설명합니다.

  • LogFlags 는 TXTLOG_ERROR 설정됩니다. 이 예제에서는 타임스탬프를 포함하거나 들여쓰기 깊이를 변경하지 않습니다. 현재 들여쓰기 깊이는 이전에 5개의 모노스페이스 텍스트 공간으로 설정되었습니다. 들여쓰기 깊이를 변경하는 방법에 대한 자세한 내용은 들여쓰기 로그 항목 작성을 참조하세요. 이벤트 수준은 텍스트 로그에 대한 이벤트 수준 설정에 설명되어 있습니다.

  • 오류 는 Win32 오류 코드의 값으로 설정되며, ERROR_SERVICE_ALREADY_RUNNING. 이 오류 코드의 10진수 값은 1056입니다.

  • MessageStr이 TEXT("서비스 시작: 서비스 'SomeService'를 시작하지 못했습니다.")로 설정됩니다.

  • 쉼표로 구분된 매개 변수 목록이 제공되지 않습니다.

LogToken, CategoryLogFlags 매개 변수는 이러한 매개 변수가 SetupWriteTextLog 작업에 영향을 미치는 것과 동일한 방식으로 SetupWriteTextLogError 작업에 영향을 줍니다.

다음 코드는 SetupWriteTextLogError 를 호출하여 이 예제에 대한 로그 항목을 작성합니다.

//The LogToken value was previously returned by call to
//SetupGetThreadLogToken or one of the system-defined log token values
DWORD Category = TXTLOG_VENDOR; 
DWORD Flags = TXTLOG_ERROR ;
DWORD ErrorCode = 1056; // The corresponding Win32 error code

SetupWriteTextLog(LogToken, Category, Flags, ErrorCode, TEXT("Start Service: Failed to start service 'SomeService'"),);

TXTLOG_VENDOR 이벤트 범주를 사용하도록 설정하고 텍스트 로그에 대해 TXTLOG_ERROR 이벤트 수준을 설정한 경우 이 코드는 다음과 같이 형식이 지정된 텍스트 로그에 항목을 만듭니다.

!!!     :  Start Service: Failed to start service 'SomeService' 
!!!   :  Error 1056: An instance of the service is already running.

SetupWriteTextLogError는 값이 1056인 Win32 오류를 설명하기 위해 "서비스의 instance 이미 실행 중입니다."라는 문자열을 제공합니다.