다음을 통해 공유


들여쓰기된 로그 항목 작성

텍스트 로그 섹션 본문 형식에 설명된 대로 SetupAPI 텍스트 로그의 섹션 본문 로그 항목 형식은 다음 필드로 구성됩니다.

entry_prefix time_stamp event_category indentation formatted_message

로그 항목의 들여쓰기 필드를 사용하여 로그 항목을 더 쉽게 읽고 이해할 수 있도록 formatted_message 필드를 들여쓰기할 수 있습니다. 들여쓰기 필드의 들여쓰기 양은 섹션에 대해 설정된 들여쓰기 깊이에 따라 달라집니다. 들여쓰기 깊이는 들여쓰기 단위의 수이며 들여쓰기 단위는 5개의 모노스페이스 텍스트 공간입니다. 예를 들어 들여쓰기 깊이가 1이면 5개 공백을 들여쓰고 들여쓰기 깊이가 2이면 10개 공백이 들여쓰기됩니다. 최소 들여쓰기 깊이는 0이고 최대 들여쓰기 깊이는 16입니다.

기본적으로 섹션의 들여쓰기 깊이는 0입니다. 들여쓰기 깊이가 0이면 formatted_message 필드가 들여쓰지 않습니다. 들여쓰기 섹션 항목 시퀀스를 작성하기 위해 들여쓰기 깊이가 증가하는 경우 애플리케이션이 들여쓰지 않은 추가 섹션 항목을 작성하기 전에 들여쓰기 깊이를 0으로 다시 설정하기 위해 해당 섹션 항목 집합도 작성해야 합니다.

섹션의 들여쓰기 깊이를 변경하려면 SetupAPI 로깅 함수를 호출하고 다음 시스템 정의 매니페스트 상수 중 하나와 SetupAPI 로깅 함수에 제공되는 flags 매개 변수 사이에 비트 OR를 사용합니다.

매니페스트 상수 들여쓰기 깊이 변경

TXTLOG_DEPTH_INCR

현재 로그 항목 및 모든 후속 로그 항목에 대해 들여쓰기 깊이가 1씩 증가합니다.

TXTLOG_DEPTH_DECR

현재 로그 항목 및 모든 후속 로그 항목에 대해 들여쓰기 깊이가 1씩 감소합니다.

TXTLOG_TAB_1

들여쓰기 깊이는 현재 로그 항목에 대해서만 1씩 증가합니다.

예를 들어 SetupWriteTextLog 에 대한 다음 호출 시퀀스는 section_title 필드가 "들여쓰기 예제"이고 instance_identifier필드가 "인스턴스 0"인 섹션 헤더 다음에 들여쓰기된 로그 항목 시퀀스를 씁니다.

// The LogToken value was previously returned by a call to 
// SetupGetThreadLogToken.
// The LogToken value specifies a section in one of the text logs.

DWORD Category = TXTLOG_VENDOR; 
DWORD Flags = TXTLOG_DETAILS;

SetupWriteTextLog(LogToken, Category, Flags, TEXT("Subsection A"));

// Additional SetupWriteTextLog calls that write entries at Subsection A indentation level

SetupWriteTextLog(LogToken, Category, Flags | TXTLOG_DEPTH_INCR, TEXT("Subsection A.1"));

// Additional SetupWriteTextLog calls that write entries at Subsection A.1 indentation level

SetupWriteTextLog(LogToken, Category, Flags | TXTLOG_DEPTH_INCR, TEXT("Subsection A.1.1"));

// Additional SetupWriteTextLog calls that write entries at Subsection A.1.1 indentation level

SetupWriteTextLog(LogToken, Category, Flags, TEXT("End of Subsection A.1.1"));

// Additional SetupWriteTextLog calls that write entries at Subsection A.1 indentation level

SetupWriteTextLog(LogToken, Category, Flags | TXTLOG_DEPTH_DECR, TEXT("End of Subsection A.1"));

// Additional SetupWriteTextLog calls that write entries at Subsection A indentation level
SetupWriteTextLog(LogToken, Category, Flags | TXTLOG_DEPTH_DECR, TEXT("End of Subsection A"));

텍스트 로그의 이벤트 수준이 TXTLOG_DETAILS 보다 크거나 같고 텍스트 로그에 대해 TXTLOG_VENDOR 이벤트 범주를 사용하도록 설정한 경우 이전 코드는 섹션 헤더 다음에 다음 로그 항목을 씁니다.

다음 예제에서 줄임표(...)는 이전 로그 항목과 동일한 들여쓰기 수준에서 0개 이상의 추가 로그 항목을 나타냅니다. 타임스탬프는 실제 타임스탬프를 대체합니다.

>>>  [Indentation Example - Instance 0]
>>>  2005/02/13 22:06:28.109: Section start
        : Subsection A
...
        :      Subsection A.1
...
        :           Subsection A.1.1
...
        :           End Subsection A.1.1
...
        :      End of Subsection A.1
...
        : End of Subsection A

실제 텍스트 로그에서 가져온 들여쓰기된 섹션 항목의 또 다른 예는 텍스트 로그 섹션 본문의 형식을 참조하세요.