다음을 통해 공유


전역 로거 추적 세션

전역 로거 추적 세션은 디바이스 드라이버에서 생성된 이벤트와 같이 시스템이 완전히 작동하기 전에 부팅 프로세스 중에 발생하는 이벤트를 기록합니다. Windows에 기본 제공되는 예약된 추적 세션입니다.

전역 로거 추적 세션은 항상 추적 로그에 메시지를 씁니다. 전역 로거는 실시간 추적 세션 또는 버퍼링된 추적 세션을 지원하지 않습니다.

전역 로거는 운영 체제 부팅 프로세스 초기에 사용할 수 있어야 하므로 함수 호출 대신 레지스트리 항목( HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger 하위 키)을 사용하여 시작되고 구성됩니다. 시작 후 전역 로거는 일반 이벤트 추적 세션처럼 동작합니다.

전역 로거 추적 세션은 예약된 세션 이름인 "GlobalLogger"를 사용합니다. 컨트롤 GUID 는 상수 GlobalLoggerGuid로 표시됩니다. 전역 로거 추적 세션을 만든 다음 컴퓨터를 다시 시작하여 추적 세션을 시작합니다. 한 번에 하나의 전역 로거 추적 세션만 컴퓨터에서 실행할 수 있습니다.

전역 로거 추적 세션을 만들려면 Tracelog를 사용합니다. 추적 세션 옵션을 저장하는 레지스트리 하위 키 및 항목을 자동으로 만듭니다. 컴퓨터를 다시 시작하면 전역 로거 추적 세션이 시작됩니다. 자세한 내용은 Tracelog 명령 구문을 참조하세요.

전역 로거 추적 세션의 추적 메시지 형식을 지정하려면 WDK에 포함된 추적 메시지 형식 파일인 system.tmf와 함께 Tracefmt를 사용합니다.

전역 로거 세션은 레지스트리 항목에 의해 트리거되므로 레지스트리에 항목이 나타날 때마다 실행됩니다. 시스템이 시작될 때마다 전역 로거 세션이 시작되지 않도록 하려면 시작 항목의 값을 0으로 설정하거나 모든 레지스트리 항목을 삭제합니다.

전역 로거 추적 세션을 NT 커널 로거 추적 세션으로 변환하여 부팅 프로세스 중에 커널을 추적할 수 있습니다. 자세한 내용은 부팅 시간 전역 로거 세션을 참조하세요.

커널 모드 드라이버 및 사용자 모드 애플리케이션과 같은 추적 공급자는 전역 로거 추적 세션에 로그할 수 있습니다. 이렇게 하면 시스템 부팅 중에 드라이버 또는 기타 추적 공급자를 추적할 수 있습니다. 자세한 내용은 전역 로거 세션에 로깅을 참조하세요.

전역 로거 추적 세션의 제한 사항

전역 로거 추적 세션은 매우 유용하지만 제한 사항에 유의해야 합니다.

한 번에 하나의 전역 로거 세션만 실행할 수 있습니다.

전역 로거 세션은 공급자에게 사용 알림을 보내지 않습니다.

전역 로거 레지스트리 항목은 레지스트리에 남아 있으며 수동으로 다시 설정하거나 삭제하거나 tracelog -remove 명령을 사용할 때까지 유효합니다. 다시 설정할 때까지 전역 로거 세션은 시스템을 시작할 때마다 시작됩니다.

Windows ACPI 로거는 전역 로거 추적 세션에 대해 영구적으로 사용하도록 설정됩니다. 이 로거의 추적 메시지가 추적 로그에 표시됩니다.

드라이버가 전역 로거 세션에 로깅하는 동안 표준 추적 세션이 시작되면 드라이버가 전환되어 표준 추적 세션으로 로깅을 시작합니다.

전역 로거 레지스트리 항목

다음 표에서는 전역 로거 세션을 구성하는 레지스트리 항목을 보여줍니다. 이러한 항목은 HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger 하위 키에 있습니다. 시작 항목만 필요합니다.

이 테이블의 레지스트리 항목 외에도 GlobalLogger 하위 키 아래에 ControlGUID 하위 키를 추가하여 전역 로거 추적 세션에 로그하는 드라이버와 같은 추적 공급자를 나타낼 수도 있습니다. 자세한 내용은 전역 로거 세션에 로깅을 참조하세요.

입력 데이터 형식 Description

Start

REG_DWORD

1(켜기)으로 설정하면 다음에 시스템이 시작될 때 전역 로거 세션이 시작됩니다.

0 = off, 1=on

BufferSize

REG_DWORD

각 버퍼의 크기(KB)를 지정합니다. 기본값은 0x40(64KB)입니다.

ClockType

REG_DWORD

추적 메시지 타임스탬프를 위해 사용되는 타이머를 지정합니다.

Windows Vista부터 기본값은 1입니다. Windows Vista 이전의 운영 체제에서 기본값은 2입니다.

1 = 성능 카운터 값(고해상도)

2 = 시스템 타이머

3 = CPU 주기 클록

EnableKernelFlags

REG_BINARY

전역 로거 세션을 NT 커널 로거 추적 세션으로 변환하고 커널 추적에 포함된 이벤트를 지정합니다.

자세한 내용은 부팅 시간 전역 로거 세션을 참조하세요.

FileCounter

REG_DWORD

전역 로거 세션에서 생성된 이벤트 추적 로그 파일의 수를 저장합니다.

시스템은 FileMax 값에 도달할 때까지 이 값을 증가합니다. 그런 다음 값을 0으로 다시 설정합니다.

이 카운터는 시스템이 전역 로거 추적 로그 파일을 덮어쓰지 못하도록 합니다.

FileMax

REG_DWORD

시스템에서 허용되는 최대 이벤트 추적 로그 파일 수를 지정합니다.

추적 로그 수가 지정된 최대값에 도달하면 시스템에서 가장 오래된 로그부터 시작하여 로그를 덮어쓰기 시작합니다.

기본값은 0입니다. 즉, 최대값이 없습니다.

FileName

REG_SZ

이벤트 추적 로그 파일의 경로(선택 사항) 및 파일 이름입니다. 기본값은 %SystemRoot%\System32\LogFiles\WMI\trace.log입니다.

FlushTimer

REG_DWORD

추적 버퍼가 강제로 플러시되는 빈도(초)를 지정합니다. 이 강제 플러시 는 버퍼가 가득 차고 추적 세션이 중지 될 때마다 발생하는 자동 플러시에 추가됩니다.

기본값은 0입니다. 기본적으로 버퍼는 가득 찬 경우에만 플러시됩니다.

최소 플러시 시간은 1초입니다.

LogFileMode

REG_DWORD

로그 세션 옵션을 지정합니다.

Windows Vista 이상 버전의 Windows에서만 지원됩니다.

MaximumBuffers

REG_DWORD

세션에 할당할 수 있는 최대 버퍼 수를 지정합니다. 기본값은 0x19(25)입니다.

MaximumFileSize

REG_DWORD

이벤트 추적 로그 파일의 최대 크기를 지정합니다. 기본적으로 최대 파일 크기는 없습니다.

MinimumBuffers

REG_DWORD

세션이 시작될 때 할당된 버퍼 수를 지정합니다. 기본값은 0x3.

상태

REG_DWORD

전역 로거 추적 세션을 시작하려는 시도에서 반환 코드를 저장합니다.

세션을 시작하지 못한 경우 이 항목의 값은 Win32 오류 코드입니다. 세션이 시작되면 이 항목의 값이 ERROR_SUCCESS.

사용자가 만든 이러한 레지스트리 항목은 레지스트리에 남아 있으며 해당 항목을 삭제하거나 해당 값을 변경할 때까지 유효합니다. 따라서 전역 로거 세션이 실행된 후 tracelog -remove GlobalLogger 명령을 사용하여 시작 항목의 값을 0으로 설정하고 다른 전역 로거 레지스트리 항목을 삭제합니다. 그렇지 않으면 컴퓨터를 다시 시작할 때마다 전역 로거 세션이 실행되고 결과 로그 파일이 매우 커질 수 있습니다.

로깅 모드 상수

다음 표에서는 HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger 하위 키에 LogFileMode 레지스트리 항목에 대한 유효한 값을 표시합니다. 이 항목은 실시간 추적 세션, 프라이빗 추적 세션, 순환 로깅 및 버퍼링(로그 없음)에 대한 옵션을 포함하여 전역 로거 추적 세션에 대한 옵션을 설정하는 데 사용됩니다. 이 레지스트리 항목은 Windows Vista 이상 버전의 Windows에서만 지원됩니다.

이 레지스트리 항목은 EVENT_TRACE_PROPERTIES 구조체의 LogFileMode 멤버에 해당합니다. 해당 값은 로깅 모드 상수에 해당합니다. EVENT_TRACE_PROPERTIES 구조 및 로깅 모드 상수는 Microsoft Windows SDK 설명서에 설명되어 있습니다.

이 테이블은 상수의 16진수 값을 표시하기 위해 여기에 표시됩니다. 이러한 값 또는 이러한 값의 합계를 사용하여 LogFileMode 레지스트리 항목의 상수를 나타냅니다.

상수 설명

0x0

EVENT_TRACE_FILE_MODE_NONE

이벤트 추적 로그 파일이 만들어지지 않습니다.

0x1

EVENT_TRACE_FILE_MODE_SEQUENTIAL

이벤트 추적 로그 파일은 순차적입니다.

0x2

EVENT_TRACE_FILE_MODE_CIRCULAR

이벤트 추적 로그 파일은 순환입니다.

0x4

EVENT_TRACE_FILE_MODE_APPEND

기존 로그 파일에 추적 메시지를 추가합니다. 이 모드는 순차적 파일에서만 유효합니다.

0x8

EVENT_TRACE_FILE_MODE_NEWFILE

기존 파일이 MaximumFileSize 항목의 값에 도달할 때마다 새 이벤트 추적 로그 파일을 만듭니다(위의 표 참조).

0x20

EVENT_TRACE_FILE_MODE_PREALLOCATE

이벤트 추적 로그 파일의 공간을 예약합니다.

EVENT_TRACE_FILE_MODE_SEQUENTIAL 또는 EVENT_TRACE_FILE_MODE_CIRCULAR만 유효하고 EVENT_TRACE_FILE_MODE_NEWFILE 유효하지 않습니다.

0x40

EVENT_TRACE_NONSTOPPABLE_MODE

StopTrace를 호출해도 추적 세션이 중지되지 않습니다.

이 기능을 사용하면 시스템에서 진단 및 튜닝에 필요한 추적 세션을 중지할 수 없습니다.

0x100

EVENT_TRACE_REAL_TIME_MODE

실시간 추적 세션을 지정합니다.

0x200

EVENT_TRACE_DELAY_OPEN_FILE_MODE

내부 전용입니다.

0x400

EVENT_TRACE_BUFFERING_MODE

이벤트는 버퍼에 유지됩니다. 로그 파일에 기록되거나 추적 소비자에게 전달되지 않습니다.

0x800

EVENT_TRACE_PRIVATE_LOGGER_MODE

프라이빗 추적 세션을 지정합니다. 이 플래그는 전역 로거 추적 세션에 유효하지 않습니다.

0x1000

EVENT_TRACE_ADD_HEADER_MODE

내부 전용입니다.

0x2000

EVENT_TRACE_USE_KBYTES_FOR_SIZE

MB가 아닌 KB의 MaximumFileSize 값을 해석합니다.

0x4000

EVENT_TRACE_USE_GLOBAL_SEQUENCE

추적 메시지에 대한 전역 시퀀스 번호를 생성합니다. 이러한 숫자는 컴퓨터의 모든 추적 세션에 대해 고유합니다.

기본적으로 추적 메시지에는 시퀀스 번호가 없습니다.

0x8000

EVENT_TRACE_USE_LOCAL_SEQUENCE

추적 메시지에 대한 로컬 시퀀스 번호를 생성합니다. 이러한 숫자는 추적 세션 내에서 고유합니다.

기본적으로 추적 메시지에는 시퀀스 번호가 없습니다.

0x10000

EVENT_TRACE_RELOG_MODE

내부 전용입니다.

0x80000

EVENT_TRACE_KD_FILTER_MODE

추적 메시지를 커널 디버거로 리디렉션하고 추적 버퍼 크기를 디버거의 최대 버퍼 크기인 3KB로 설정합니다.

0x1000000

EVENT_TRACE_MODE_RESERVED

전역 로거 추적 세션에 유효하지 않습니다.

0x01000000

EVENT_TRACE_USE_PAGED_MEMORY

페이지 가능 메모리에서 추적 세션 버퍼를 할당합니다. 기본적으로 버퍼는 페이징할 수 없는 메모리에서 할당됩니다.