Tracelog 명령 구문
Tracelog에는 추적 세션을 시작, 중지 및 제어하는 명령(또는 작업)이 있습니다.
참고 항목
추적 세션을 제어하려면 성능 로그 사용자 그룹의 구성원이거나 컴퓨터의 관리자 그룹(관리자 권한으로 실행)이어야 합니다.
tracelog [actions] [options] | [-h | -help | -?]
매개 변수
Tracelog 매개 변수에 대한 자세한 내용은 [작업] [옵션]을 참조하세요.
[작업]
-addautologger [LoggerName]
자동 로그 세션에 대한 레지스트리 항목을 구성합니다. 자동 로그 세션은 시스템 부팅 중에 드라이버 또는 다른 추적 공급자의 활동을 추적하기 위한 기본 방법입니다. -sessionguid 옵션을 사용하여 세션 GUID를 지정해야 합니다. tracelog -addautologger 명령은 Tracelog -start 명령과 동일한 옵션을 사용합니다.
-capturestate [LoggerName]
LoggerName에 사용하도록 설정된 모든 공급자에게 상태 정보를 기록하도록 요청합니다. 활성화된 키워드는 기록되는 정보의 종류를 결정하는 데 도움이 됩니다.
-disable [LoggerName]
지정된 추적 공급자를 사용하지 않도록 설정합니다. 공급자를 사용하지 않도록 설정하면 계속 실행되지만 추적 메시지 생성은 중지됩니다.
tracelog -stop 명령은 세션을 중지하기 전에 추적 공급자를 사용하지 않도록 설정합니다. 추적 세션을 중지하기 전에 공급자를 사용하지 않도록 설정할 필요가 없습니다. 그러나 추적 세션을 중지하지 않고 tracelog -disable 명령을 사용하여 선택한 공급자를 사용하지 않도록 설정할 수 있습니다.
사용하지 않도록 설정하면 추적 공급자가 추적 세션 버퍼에 추적 메시지를 보내지 않지만 버퍼를 플러시하거나 추적 세션을 중지하지는 않습니다. tracelog -flush 명령을 사용하여 버퍼를 플러시하고 추적 로그 -stop 또는 tracelog -x(모두 중지) 명령을 사용하여 추적 세션을 중지합니다.
Tracelog는 EnableTrace 함수를 사용하여 tracelog -disable 명령을 구현합니다. 이 함수에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
-enable [LoggerName]
LoggerName 추적 세션에 대해 하나 이상의 추적 공급자를 사용하도록 설정합니다.
공급자를 사용하도록 설정하면 공급자가 추적 메시지를 생성하고 추적 세션의 버퍼로 보냅니다. 공급자를 사용하도록 설정할 때 공급자가 실행되지 않거나 로드되지 않은 경우 시스템은 공급자를 미리 등록 합니다. 즉, ETW 등록 데이터베이스에서 공급자를 위한 공간을 예약하고 enable 명령을 저장합니다. 공급자가 시작되고 실제로 등록되면 저장된 사용 명령을 수신하고 세션에 추적 메시지를 보내기 시작합니다.
tracelog -start 명령을 사용하면 tracelog -start 명령에서 선택적 -guid 매개 변수로 지정된 모든 공급자를 사용할 수 있습니다. 별도의 tracelog -enable 명령을 제출할 필요가 없습니다.
tracelog -enable 명령을 사용하여 실행 중인 추적 세션에 공급자를 추가하거나, 추적하는 동안 공급자의 플래그 및 수준을 변경하거나, tracelog -disable 명령을 사용하여 사용하지 않도록 설정한 공급자를 다시 사용하도록 설정할 수 있습니다.
tracelog -enable 명령을 사용하는 경우 먼저 tracelog -start 명령을 제출하여 추적 세션을 시작한 다음 tracelog -enable 명령을 제출하여 공급자를 사용하도록 설정합니다.
실행 중인 공급자를 사용하지 않도록 설정하지 않고 반복적으로 사용하도록 설정할 수 있습니다. 플래그와 수준을 변경하려면 이 작업을 수행할 수 있습니다.
-flag 및 -level 매개 변수를 사용하여 지정한 추적 플래그 및 추적 수준은 -guid 매개 변수가 나타내는 모든 추적 공급자에 전달됩니다. 각 추적 공급자에 대해 서로 다른 플래그 및 수준을 지정하려면 자체 플래그 및 수준 설정을 사용하여 각 공급자에 대해 별도의 tracelog -enable 명령을 제출합니다.
전역 로거 추적 세션이 실행되는 동안 NT 커널 로거 플래그(예: -noprocess, -nothread, -fio 또는 -cm)를 사용하도록 설정하면 전역 로거 세션이 NT 커널 로거 추적 세션으로 변환됩니다. 이 기능은 부팅 프로세스 중에 커널 이벤트를 추적하도록 설계되었습니다.
-enableex [LoggerName]
-enable과 동일합니다. 이 옵션은 이후 버전의 Tracelog에서 제거될 수 있습니다.
-enumguid
ETW(Windows용 이벤트 추적)에 등록된 시스템의 공급자(또는 목록)를 열거합니다. 열거형 디스플레이에 대한 설명은 Tracelog Enumguid Display를 참조 하세요.
Tracelog는 EnumerateTraceGuids 함수를 사용하여 tracelog -enumguid 명령을 구현합니다. 이 함수에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
-enumguidex [#guid]
ETW(Windows용 이벤트 추적)에 등록된 시스템의 공급자(또는 목록)를 열거합니다. EnumguidEx 디스플레이에 대한 설명은 Tracelog Enumguid Display를 참조 하세요.
Tracelog는 EnumerateTraceGuidsEx 함수를 사용하여 tracelog -enumguidex 명령을 구현합니다. 이 함수에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
-flush [LoggerName]
LoggerName 추적 세션의 활성 버퍼를 플러시합니다. LoggerName을 지정하지 않으면 Tracelog는 NT 커널 로거 추적 세션의 버퍼를 플러시합니다.
이 강제 플러시는 추적 메시지 버퍼가 가득 차고 추적 세션이 중지될 때마다 자동으로 발생하는 플러시와 플러시 타이머(-ft)에 의해 활성화되는 플러시 외에도 추가됩니다.
추적 세션의 버퍼를 플러시하면 버퍼의 이벤트가 추적 로그 또는 추적 소비자에게 즉시 전달됩니다.
플러시가 추적 공급자를 사용하지 않도록 설정하거나 추적 메시지를 리디렉션하지 않습니다. 버퍼가 플러시되면 추적 공급자는 버퍼에 이벤트를 계속 작성합니다.
Tracelog는 FlushTrace 함수를 사용하여 tracelog -flush 명령을 구현합니다. 이 함수에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
-f Logfile 옵션과 함께 tracelog -flush 명령을 사용하여 현재 버퍼에 있는 추적 메시지를 지정된 추적 로그(.etl) 파일로 플러시할 수 있습니다. 이 매개 변수는 버퍼링된 추적 세션(-buffering)에만 유효합니다. 다른 추적 세션 형식의 경우 -f 매개 변수는 무시됩니다.
이 플러시만 버퍼의 현재 내용에 영향을 줍니다. 이후 추적 메시지를 추적 로그로 리디렉션하지 않습니다.
-l [-lp]
컴퓨터에서 실행되는 모든 추적 세션의 속성을 나열합니다.
-lp 옵션을 전달하는 경우 Tracelog는 각 세션에 사용하도록 설정된 모든 공급자도 나열합니다.
-q [LoggerName] [-lp]
지정된 추적 세션의 속성을 나열(쿼리)합니다. LoggerName을 지정하지 않으면 Tracelog는 NT 커널 로거 추적 세션을 쿼리합니다.
-lp 옵션을 전달하는 경우 Tracelog는 세션에 사용하도록 설정된 모든 공급자도 나열합니다.
-GlobalLogger 제거
전역 로거 추적 세션에 대한 레지스트리 값을 제거하고 다시 초기화합니다. 시작 항목의 값을 0(시작 안 함)으로 설정하고 다른 레지스트리 항목을 삭제합니다. tracelog -remove 명령은 전역 로거 추적 세션에 대해서만 작동합니다. 다른 모든 세션 이름 값이 잘못되었습니다.
tracelog -remove 명령은 필요하지 않습니다. 그러나 시작 항목의 값을 0으로 설정하지 않으면 시스템을 다시 부팅할 때마다 전역 로거 세션이 시작됩니다.
tracelog -remove 명령을 사용하지 않는 경우 이전 세션의 옵션은 여전히 레지스트리에 있으며, 동일한 옵션에 대해 다른 값을 가진 tracelog -start 명령을 제출하지 않는 한 새 세션에 사용됩니다.
-start [LoggerName]
추적 세션을 나타내기 위해 선택한 LoggerName을 사용하여 추적 세션을 시작합니다.
GlobalLogger를 LoggerName으로 사용하여 전역 로거 추적 세션을 지정합니다. 컴퓨터를 다시 시작하면 세션이 시작됩니다.
LoggerName은 Windows 명명 지침을 충족하는 모든 이름(최대 1,024자)일 수 있습니다. 이름에 공백이 포함된 경우 이름을 따옴표로 묶습니다. Tracelog는 대/소문자를 구분하지 않습니다.
기본값은 "NT 커널 로거"입니다. 이 매개 변수를 생략하면 Tracelog는 NT 커널 로거 추적 세션을 시작하고 -guid 매개 변수를 사용하여 다른 추적 공급자를 지정하는 경우 오류를 선언합니다.
-stop [LoggerName]
지정된 추적 세션에서 공급자를 사용하지 않도록 설정한 다음 세션을 종료합니다.
tracelog -stop 명령은 추적 공급자를 사용하지 않도록 설정하고 추적 세션을 중지합니다. tracelog -disable 명령은 추적 공급자만 사용하지 않도록 설정합니다.
커널 이벤트를 추적하는 부팅 시간 전역 로거 세션을 시작하는 경우 명령 추적 로그 -stop "NT 커널 로거" 또는 tracelog -stop GlobalLogger를 사용하여 중지해야 합니다. 명령 중 하나를 사용하여 전역 로거 추적 세션 추적 세션을 중지하는 경우 Tracelog는 공급자를 중지하지만 레지스트리 항목의 값을 다시 설정하지는 않습니다. 전역 로거 레지스트리 항목의 값을 다시 설정하려면 tracelog -remove를 사용합니다.
-systemrundown [LoggerName]
LogerName 세션에서 전달된 런다운 이벤트를 기록하도록 SystemTraceProvider에 요청합니다. 추적 세션 시작에 대한 자세한 내용은 SystemTraceProvider 세션 구성 및 시작을 참조하세요.
이 명령은 Windows 8 이상 버전의 Windows에서만 사용할 수 있습니다.
-타임 아웃 값
tracelog -enable 명령으로 공급자를 사용하도록 설정할 때 사용할 시간 제한 값(밀리초)을 지정합니다. 기본 시간 제한은 0입니다.
시간 제한 값이 0이면 Tracelog는 각 공급자의 사용 콜백을 호출하고 콜백이 완료될 때까지 기다리지 않고 즉시 반환합니다.
공급자를 동기적으로 사용하도록 설정하려면 시간 제한 값을 지정합니다. 시간 제한 값을 지정하면 Tracelog는 각 공급자의 사용 콜백이 종료되거나 시간 제한이 만료될 때까지 대기합니다.
여러 공급자를 한 번에 사용하도록 설정하면 시간 제한이 각 공급자에 순차적으로 적용됩니다.
-update [LoggerName]
tracelog -update 명령은 실행 중인 동안 추적 세션의 속성을 변경합니다.
tracelog -update 명령에서 -guid 매개 변수는 프라이빗 추적 세션(-um)을 업데이트할 때만 유효합니다. 세션이 실행되는 동안 표준 추적 세션에서 공급자를 추가하거나 제거하려면 tracelog -enable 및 tracelog -disable 명령을 사용합니다.
추적 로그 세션(-f)을 시작하는 경우 실시간 세션(-rt)으로 업데이트할 수 있지만 추적 소비자 외에도 메시지가 추적 로그로 계속 전송됩니다. 업데이트하여 세션에서 로그를 제거할 수 없습니다. 그러나 추적 로그 세션에 실시간 메시지 배달을 추가하려면 먼저 tracelog -flush 명령을 사용하여 버퍼를 플러시 해야 합니다.
실시간 세션(-rt)을 시작한 다음 추적 로그 세션(-f)으로 업데이트하는 경우 새 추적 메시지는 더 이상 추적 소비자에게 직접 전송되지 않으며 추적 로그로만 전송됩니다. 실시간 추적 세션에 추적 로그를 추가하려면 tracelog -update 명령에서 -rt 및 -f를 모두 사용합니다. 추적 로그 세션에 실시간 메시지 배달을 추가하려면 먼저 tracelog -flush 명령을 사용하여 버퍼를 플러시 해야 합니다.
전역 로거 추적 세션을 업데이트할 수 없습니다.
프라이빗(사용자 모드) 추적 세션의 경우 로그 파일 이름(-f) 및 플러시 타이머 값(-ft)만 업데이트할 수 있습니다.
플래그 및 수준을 업데이트하려면 tracelog -enable 명령을 사용하여 새 플래그 또는 수준으로 공급자를 다시 사용하도록 설정합니다.
Tracelog는 ControlTrace 함수를 사용하여 tracelog -update 명령을 구현합니다. 이 함수에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
[옵션]
-addtotriagedump
참고 항목
디버거를 사용하여 커널 덤프에서 이벤트를 확인해야 하는 경우를 제외하고 이 옵션을 사용하면 안 됩니다.
세션에 대한 활성 버퍼를 심사 메모리 덤프에 추가할 수 있도록 지정합니다. 심사 덤프의 크기는 제한되며 세션의 버퍼로 인해 덤프가 최대 크기를 초과하면 버퍼가 제외됩니다.
-덧붙이다
추적 메시지를 -f 매개 변수로 지정된 이벤트 추적 로그(.etl) 파일에 추가합니다. 기본값은 새 파일을 만드는 것입니다.
이 매개 변수는 -f를 포함하고 -rt 또는 -cir을 포함하지 않는 명령에서만 유효합니다.
-b BufferSize
추적 세션에 할당된 각 버퍼의 크기(KB)를 지정합니다. 기본값은 프로세서 수, 실제 메모리 양 및 사용 중인 운영 체제에 따라 결정됩니다.
-bt n
플러시를 시작하기 전에 채울 버퍼의 수(n)를 지정합니다. 이 옵션은 Windows 8.1부터 사용할 수 있습니다.
-버퍼링
버퍼링된 추적 세션을 시작합니다.
버퍼링된 추적 세션에서 추적 메시지는 추적 버퍼에 유지됩니다. 추적 소비자에게 전송되거나 추적 로그에 기록되지 않습니다.
-cir MaxFileSize
이벤트 추적 로그(.etl) 파일에서 순환 로깅(파일 끝에서 가장 오래된 메시지에 새 메시지 기록)을 지정합니다. MaxFileSize 는 파일의 최대 크기를 MB로 지정합니다. MaxFileSize 값이 없으면 이 매개 변수는 무시됩니다.
기본값은 파일 크기 제한이 없는 순차 로깅입니다.
-센티미터
레지스트리(Configuration Manager) 액세스를 추적할 수 있습니다. 이 매개 변수는 NT 커널 로거 추적 세션에만 유효합니다.
-critsec
프라이빗 추적 세션의 프로세스에 대한 중요한 섹션 이벤트를 추적합니다. 추적을 위해 계측되지 않은 프로세스라도 모든 사용자 모드 프로세스에서 중요한 섹션 프로세스 로거를 시작할 수 있습니다.
-pids를 사용하여 프로세스를 지정합니다. -critsec과 함께 -guid를 사용하지 마세요. 시스템은 중요한 섹션 추적에 대한 사용자 지정 GUID(CritSecGuid)를 정의합니다. 동일한 명령에서 -heap 및 -critsec을 사용할 수 없습니다.
-dpcisr
DPC(지연 프로시저 호출), ISR(인터럽트 서비스 요청), 이미지 로드 이벤트(-img) 및 커널의 컨텍스트 스위치를 추적할 수 있습니다. 이 매개 변수는 NT 커널 로거 추적 세션에만 유효합니다.
이 옵션은 Windows Vista용 Windows 드라이버 키트 및 이후 버전의 WDK에 포함된 Tracelog 버전에서만 지원됩니다. -dpcisr 옵션은 -eflag 옵션과 함께 사용할 수 없습니다.
-dpcisr과 함께 -UsePerfCounter 매개 변수를 사용합니다. 각 이벤트에 고유한 타임스탬프를 제공하는 이 매개 변수는 DPC/ISR 이벤트의 형식을 지정하고 해석하는 데 사용되는 도구인 Tracerpt에 필요합니다. 이러한 이벤트를 해석하고 서식을 지정하는 방법에 대한 자세한 내용은 아래의 "주석"을 참조하세요.
-eflag n [플래그...]
NT 커널 로거 추적 세션, 특히 플래그에 대한 추가 플래그를 사용하여 커널 이벤트를 사용하도록 설정하여 DPC, ISR 및 컨텍스트 전환 이벤트를 추적할 수 있습니다. -eflag 옵션은 –dpcisr 옵션과 함께 사용할 수 없습니다.
-enableproperty n
설명 및 지원되는 값은 EnableTraceEx2에 매개 변수로 전달된 EnableParameters 구조체의 EnabledProperties 설명을 참조하세요.
-EventIdFilter {-in-out|} **** n **** id1 id2 ...
n 이벤트 ID(최대 64개의 이벤트 ID 허용)가 있는 이벤트 ID 필터를 지정합니다. 이 옵션은 Windows 8.1부터 사용할 수 있습니다.
-ExeFilter Executable_file [; Executable_file ...]
필터링할 실행 파일의 이름을 지정합니다. 파일 목록을 지정할 수 있습니다. 세미콜론을 사용하여 파일의 이름을 구분합니다. 나열되지 않은 파일은 제외됩니다. 이 옵션은 Windows 8.1부터 사용할 수 있습니다.
-f [LogFile]
추적 로그 세션을 시작합니다. LogFile 은 이벤트 추적 로그(.etl) 파일의 경로(선택 사항) 및 파일 이름을 지정합니다. 기본값은 C:\LogFile.etl입니다. 원격 컴퓨터에 파일을 배치하려면 경로에 컴퓨터 이름 또는 IP 주소를 포함합니다.
-rt를 -f와 함께 사용하면 추적 메시지가 소비자와 이벤트 추적 로그 파일로 전송됩니다. -rt 또는 -f를 -buffering과 함께 사용할 수 없습니다.
-fio
파일 I/O 이벤트를 추적할 수 있습니다. 이 매개 변수는 NT 커널 로거 추적 세션에만 유효합니다.
-기 기
참고 항목
플래그가 키워드로 대체되었습니다. WPP 공급자를 사용하도록 설정하지 않는 한 -matchanykw를 사용합니다.
추적 세션의 공급자에 대한 추적 플래그를 지정합니다. 플래그 값은 추적 공급자가 생성하는 이벤트를 결정합니다.
플래그 는 추적 공급자에 정의된 플래그 값을 10진수 또는 16진수 형식으로 나타냅니다. 기본값은 0입니다. 0x01000000 0xFF000000 값은 나중에 사용하도록 예약됩니다.
플래그 값의 의미는 각 추적 공급자에 의해 독립적으로 정의됩니다. 일반적으로 플래그는 점점 더 자세한 보고 수준을 나타냅니다.
tracelog -start 명령에 지정된 플래그 값은 추적 세션의 모든 추적 공급자에 적용됩니다. 각 추적 공급자에 대해 서로 다른 플래그를 설정하려면 tracelog -enable을 사용합니다.
-피트 FlushTime
추적 메시지 버퍼가 플러시되는 빈도(초)를 지정합니다. 최소 플러시 시간은 1초입니다. 기본값은 0(강제 플러시 없음)입니다.
이 강제 플러시는 추적 메시지 버퍼가 가득 찼을 때마다 추적 세션이 중지되는 경우 자동으로 발생하는 플러시 외에 추가됩니다.
tracelog -flush 명령을 참조하세요.
-guid {#GUID | 파일 | *name}
지정된 추적 공급자를 사용하도록 설정합니다.
파일이 지정된 경우 Tracelog는 파일에 지정된 모든 공급자에 대해 추적을 사용하도록 설정합니다. 파일의 형식은 다음과 같습니다.
; comment line
guid1;matchanykeyword;level
guid2;matchanykeyword;level
공급자 GUID를 지정하는 경우 GUID는 숫자 기호(#)로 선행되어야 합니다.
공급자 이름을 지정하는 경우 이름을 별표(*)로 미리 지정해야 합니다. 그런 다음 이름과 동일한 알고리즘을 사용하여 GUID로 변환됩니다. NET의 이벤트 원본입니다. 그런 다음 이 GUID를 사용하여 공급자를 사용하도록 설정합니다.
이 매개 변수를 생략하면 추적 공급자가 추적 세션에 메시지를 보내지 않습니다. 그러나 추적 세션을 시작한 후 tracelog -enable 명령을 사용하여 세션에 대해 하나 이상의 추적 공급자를 사용하도록 설정할 수 있습니다.
-gs
각 추적 메시지에 대한 전역 시퀀스 번호를 생성합니다.
전역 시퀀스 번호는 컴퓨터의 모든 추적 세션에 대해 고유합니다. 기본적으로 시퀀스 번호는 없습니다.
이 매개 변수는 NT 커널 로거 추적 세션에서 유효하지 않습니다.
-힙
사용자 모드 프로세스에 대한 힙 메모리 이벤트를 추적합니다. 추적을 위해 계측되지 않은 프로세스라도 모든 사용자 모드 프로세스에서 힙 프로세스 로거를 시작할 수 있습니다.
-pids를 사용하여 프로세스를 지정합니다. -guid를 -heap과 함께 사용하지 마세요. 시스템은 힙 메모리 추적에 대한 사용자 지정 GUID(HeapGuid)를 정의합니다. 동일한 명령에서 -heap 및 -critsec을 사용할 수 없습니다.
-hf
하드 페이지 오류(디스크 액세스가 필요한 페이지 오류)를 추적할 수 있습니다. 이 매개 변수는 NT 커널 로거 추적 세션에만 유효합니다.
-hybridshutdown {stop|persist}
하이브리드 종료 로거 동작을 제어합니다. 이 옵션은 Windows 8부터 사용할 수 있습니다.
중지 하면 시스템이 하이브리드 종료를 수행할 때 세션이 중지됩니다. 지속 하면 시스템이 하이브리드 종료에서 다시 시작된 후 세션이 계속됩니다.
-img
이미지 로드 이벤트를 추적할 수 있습니다. 이 매개 변수는 NT 커널 로거 추적 세션에만 유효합니다.
-독립의
참고 항목
모든 추적 세션에서 독립 모드를 사용하도록 설정해야 합니다.
추적 세션에서 독립 모드를 사용하도록 설정합니다. 독립 모드를 사용하면 세션이 다른 비자립 모드 세션이 삭제한 이벤트를 수집할 수 있습니다. 이 옵션은 Windows 8.1부터 사용할 수 있습니다.
-kb
로그 파일 크기에 KB(킬로바이트)를 사용합니다. 기본값은 메가바이트(MB)입니다.
-kd
추적 메시지를 연결된 KD 또는 Windbg로 리디렉션합니다. 또한 이 매개 변수는 추적 버퍼 크기를 디버거의 최대 버퍼 크기인 3KB로 설정하고 명령의 모든 -b 매개 변수를 무시합니다.
-kd를 사용하여 Tracelog 명령을 제출할 때 디버거가 실행 중이어야 합니다. 그렇지 않으면 Tracelog가 응답을 중지합니다.
커널 디버거에 추적 메시지를 표시하는 방법에 대한 자세한 내용은 설명을 참조하세요.
-Lbr *EventName[**+EventName+...]:Filter[,*Filter,...]
커널 이벤트에서 LBR 추적을 구성합니다.
커널 이벤트 목록에 -eflag 도움말을 사용합니다.
-수준 n
추적 세션의 공급자에 대한 추적 수준을 지정합니다. 수준은 추적 공급자가 생성하는 이벤트를 결정합니다.
수준은 10진수 또는 16진수 형식의 수준 값을 나타냅니다. 기본값은 0입니다.
수준 값의 의미는 각 추적 공급자에 의해 독립적으로 정의됩니다. 일반적으로 추적 수준은 이벤트의 심각도(정보, 경고 또는 오류)를 나타냅니다.
tracelog -start 명령에 지정된 수준 값은 추적 세션의 모든 추적 공급자에 적용됩니다. 각 추적 공급자에 대해 서로 다른 수준을 설정하려면 tracelog -enable을 사용합니다.
-lowcapacity
참고 항목
메모리 비용을 절감하는 데 필요한 경우가 아니면 이 옵션을 사용하면 안 됩니다. 이 옵션을 사용하면 각 이벤트가 기록 속도가 느려집니다.
한 번에 하나의 버퍼를 사용하여 여러 프로세서에서 생성된 이벤트를 수집합니다. 이 옵션은 EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING 로깅 모드를 선택합니다. 자세한 내용은 Windows SDK를 참조하세요.
-ls
각 추적 메시지에 대한 로컬 시퀀스 번호를 생성합니다.
로컬 시퀀스 번호는 추적 세션 내에서 고유합니다. 기본적으로 시퀀스 번호는 없습니다.
이 매개 변수는 NT 커널 로거 추적 세션에서 유효하지 않습니다.
-최대 NumberOfBuffers
Tracelog가 추적 세션에 할당하는 최대 버퍼 수를 지정합니다. 기본값은 프로세서 수, 실제 메모리 양 및 사용 중인 운영 체제에 따라 결정됩니다.
-matchallkw n
공급자가 작성하고 -matchanykw 옵션과 함께 사용되는 이벤트의 범주를 제한하는 MatchAllKeyWord 비트 마스크를 지정합니다.
이 비트 마스크는 선택 사항입니다. 이벤트의 키워드가 -matchanykw 옵션에 지정된 조건을 충족하는 경우 공급자는 이 마스크의 모든 비트가 이벤트의 키워드에 있는 경우에만 이벤트를 작성합니다. -matchanykw가 0인 경우 이 마스크는 사용되지 않습니다.
Tracelog는 EnableTraceEx2 함수 호출의 MatchAllKeyWord 매개 변수에서 n 값을 전달합니다. 자세한 내용은 Windows SDK를 참조하세요.
-matchanykw n
공급자가 쓰는 이벤트의 범주를 결정하는 MatchAnyKeyword 비트 마스크를 지정합니다.
이벤트의 키워드 비트가 이 마스크에 설정된 비트와 일치하는 경우 공급자는 이벤트를 씁니다. Tracelog는 EnableTraceEx2 함수 호출의 MatchAnyKeyWord 매개 변수에서 n 값을 전달합니다. 자세한 내용은 Windows SDK를 참조하세요.
-분 NumberOfBuffers
추적 메시지를 저장하기 위해 처음에 할당된 버퍼 수를 지정합니다. 버퍼가 가득 차면 Tracelog는 최대값에 도달할 때까지 더 많은 버퍼를 할당합니다. 기본값은 프로세서 수, 실제 메모리 양 및 사용 중인 운영 체제에 따라 결정됩니다.
-newfile MaxFileSize
기존 파일이 MaxFileSize에 도달할 때마다 새 이벤트 추적 로그(.etl) 파일을 만듭니다. MaxFileSize 는 각 로그 파일의 최대 크기를 MB로 지정합니다. MaxFileSize 값이 없으면 이 매개 변수는 무시됩니다.
-newfile을 사용하는 경우 -f LogFile 매개 변수도 사용해야 하며 LogFile 값은 소수점 패턴을 나타내는 문자 %d(예: trace%d.etl)를 포함하는 이름이어야 합니다. 그렇지 않으면 명령이 ERROR_INVALID_NAME 실패합니다. Windows는 새 파일을 만들 때마다 파일 이름에 10진수 값을 증분합니다.
이 매개 변수는 사전 할당(-prealloc), 순환 로깅(-cir), NT 커널 로거 세션 또는 프라이빗 추적 세션에서는 유효하지 않습니다.
-nodisk
실제 디스크 I/O 이벤트의 추적을 사용하지 않도록 설정합니다. 이 매개 변수는 NT 커널 로거 추적 세션에만 유효합니다.
-nonet
TCP/IP 및 UDP(사용자 데이터그램 프로토콜) 이벤트의 추적을 사용하지 않도록 설정합니다. 이 매개 변수는 NT 커널 로거 추적 세션에만 유효합니다.
-noprocess
각 프로세스의 시작 및 끝 추적을 사용하지 않도록 설정합니다. 이 매개 변수는 NT 커널 로거 추적 세션에만 유효합니다.
-nothread
각 스레드의 시작 및 끝 추적을 사용하지 않도록 설정합니다. 이 매개 변수는 NT 커널 로거 추적 세션에만 유효합니다.
-페이징
추적 메시지 버퍼에 대해 페이지 가능한 메모리를 사용합니다. 기본적으로 이벤트 추적은 버퍼에 대해 페이징할 수 없는 메모리를 사용합니다.
페이지를 처리할 수 없는 메모리가 필요한 공급자는 페이지 가능한 메모리를 사용하는 세션에 이벤트를 기록할 수 없습니다.
-pids #PIDs PID [PID...]
힙 메모리 또는 중요한 섹션 추적 세션이 실행되는 사용자 모드 프로세스를 지정합니다. -heap 또는 -critsec에서만 유효합니다.
#PIDs 이 매개 변수와 함께 나열된 프로세스 ID 수를 지정합니다. PID 는 프로세스 식별자를 나타냅니다. 이 매개 변수를 사용하여 최대 10개의 PID를 지정할 수 있습니다.
공급자가 둘 이상의 프로세스에서 실행되는 경우(예: 단일 프로그램에서 여러 프로세스를 만드는 경우) 여러 PID를 나열합니다.
-PidFilter n pid1 pid2 ...
Pid가 n개인 Pid 필터를 지정합니다(최대 8개 허용). 이 옵션은 Windows 8.1부터 사용할 수 있습니다.
-pf
모든 페이지 오류를 추적할 수 있습니다. 이 매개 변수는 NT 커널 로거 추적 세션에만 유효합니다.
-PkgIdFilter 패키지 전체 이름 [ **;**패키지 전체 이름...]
패키지 ID 필터를 지정합니다. 패키지 파일 목록을 지정할 수 있습니다. 세미콜론을 사용하여 파일의 이름을 구분합니다.
-PkgAppIdFilter PRAID [**;**PRAID...]
PRAID(패키지 상대 앱 식별자) 필터를 지정합니다. PRAID는 패키지 내에서 애플리케이션의 고유 식별자입니다. 둘 이상의 PRAID를 지정할 수 있습니다. 세미콜론을 사용하여 ID를 구분합니다. 이 옵션은 Windows 8.1부터 UWP 앱에 사용할 수 있습니다.
-Pmc Ctr1,Ctr2,...:Name+Name+...
지정된 커널 이벤트에서 PMC(성능 모니터 카운터) 샘플링을 구성합니다. 이 옵션은 Windows 8부터 사용할 수 있습니다.
카운터 목록에 -ProfileSource 도움말을 사용합니다. 커널 이벤트 목록에 -eflag 도움말을 사용합니다.
-prealloc
세션을 시작하기 전에 .etl 파일의 공간을 예약합니다.
이 매개 변수에는 MaxFileSize를 사용하는 -seq 또는 -cir이 필요합니다. -newfile에는 유효하지 않습니다.
-ProfileSource src
사용할 프로파일링 원본을 구성합니다. 원본 목록의 경우 tracelog -ProfileSource 도움말 명령을 사용합니다. 이 옵션은 Windows 8부터 사용할 수 있습니다.
이 옵션은 Windows 8 이상 버전의 Windows에서만 사용할 수 있습니다.
-rt
실시간 추적 세션을 시작합니다. (추적 로그 세션(-f)이 기본값입니다.
-rt 및 -f를 사용하는 경우 추적 메시지는 추적 소비자 및 이벤트 추적 로그 파일로 전송됩니다. -rt 또는 -f를 -buffering과 함께 사용할 수 없습니다. 자세한 내용은 추적 세션을 참조 하세요.
-확실한
보안 모드에서 추적을 사용하도록 설정합니다. 이 옵션은 EVENT_TRACE_SECURE_MODE 로깅 모드를 선택합니다. 세션에 이벤트를 기록할 수 있는 사용자를 TRACELOG_LOG_EVENT 권한이 있는 사용자로 제한합니다.
-sessionguid
자동 로그 세션 GUID 레지스트리 값을 지정합니다.
-SetProfInt n **** src
Important
프로파일링 간격을 변경하지 않는 것이 좋습니다.
지정된 원본에 대한 프로파일링 간격(n)을 구성합니다. 여기서 n 은 100ns 단위입니다. 기본값은 10000(1ms에 해당)입니다. 이 옵션은 Windows 8부터 사용할 수 있습니다.
-seq MaxFileSize
이벤트 추적 로그(.etl) 파일에 대한 순차적 로깅(파일 끝에서 이벤트 기록 중지)을 지정합니다. MaxFileSize 는 파일의 최대 크기를 MB로 지정합니다. MaxFileSize 값이 없으면 이 매개 변수는 무시됩니다.
순차 로깅은 기본값이지만 이 매개 변수를 사용하여 최대 파일 크기를 설정하거나 -prealloc를 사용할 수 있습니다. 이 매개 변수가 없으면 파일 크기 제한이 없습니다.
-sourceguid SourceGuid
EnableTraceEx 또는 EnableTraceEx2 함수에 SourceId 매개 변수로 전달되는 GUID를 지정합니다. SourceId는 공급자를 사용하도록 설정한 세션을 식별합니다.
-stackwalk [이벤트]
스택을 수집할 커널 이벤트를 지정합니다. 커널 이벤트 목록에 -eflag 도움말을 사용합니다. 이 매개 변수는 NT 커널 로거 또는 시스템 로거 추적 세션에만 유효합니다.
-StackWalkFilter {-in-out|}nid1 id2 ...
n 이벤트 ID(최대 64개의 이벤트 ID 허용)가 있는 이벤트 ID 필터를 지정합니다. 이 옵션은 Windows 8.1부터 사용할 수 있습니다.
-systemlogger
로거는 SystemTraceProvider 이벤트를 받을 수 있습니다. SystemTraceProvider 세션 구성 및 시작을 참조 하세요. 이 옵션은 Windows 8부터 사용할 수 있습니다.
-마이크로미터
프라이빗 추적 세션을 지정합니다. 이 매개 변수는 프라이빗 추적 세션에 필요합니다.
-UseCPUCycle
프로세서 빈도("CPU 틱"이라고도 함)를 사용하여 각 추적 메시지의 시간을 측정합니다.
이 타이머는 가능한 가장 높은 해상도를 제공하지만 매우 민감하여 특히 전원 관리형 시스템 및 다중 프로세서 컴퓨터에서 오류가 발생하기 쉽습니다. 예를 들어 Arm 프로세서가 있는 컴퓨터에서 이 타이머를 지정하면 순서가 다른 이벤트가 발생할 수 있습니다. 대신 고 해상도 추적에는 -UsePerfCounter 를 사용하는 것이 좋습니다.
-UsePerfCounter 는 이벤트 추적의 기본 타이머입니다.
-UsePerfCounter
각 추적 메시지와 함께 해상도가 낮은 시스템 시간이 아닌 고해상도 성능 카운터 클록의 값을 기록합니다.
성능 카운터 클록은 약 100나노초 단위로 계산되므로 각 이벤트에 고유한 타임스탬프를 제공합니다.
-UsePerfCounter 는 이벤트 추적의 기본 타이머입니다.
-UseSystemTime
각 추적 메시지와 함께 고해상도 성능 카운터 클록 시간이 아닌 시스템 시간을 기록합니다. 시스템 타이머의 해상도는 10밀리초(성능 카운터 클록의 경우 100나노초에 비해)이므로 여러 이벤트가 동일한 시스템 시간을 가질 수 있습니다.
-UsePerfCounter 는 이벤트 추적의 기본 타이머입니다.
-? | 도움말 | -?
사용 정보를 표시합니다.
코멘트
다음 주석은 여러 Tracelog 명령에 적용됩니다.
구문 오류
Tracelog는 변경할 수 없는 설정을 업데이트하려고 할 때와 같이 모든 잘못된 구문 조합에 대한 오류를 표시하지 않습니다. 대신 명령의 잘못된 부분을 무시하고 성공 메시지를 표시합니다.
시스템 로거
Windows는 여러 용도로 추적 세션을 사용하며, 그 중 일부는 적절한 작업에 중요합니다. 시작하지 않은 추적 세션을 중지하지 마세요.
열거형
tracelog -start 또는 tracelog -enable 명령이 성공했는지 확인하려면 tracelog -enumguid 명령을 사용하여 공급자가 활성화되었는지 여부를 확인한 다음 tracelog -l(목록) 명령을 사용하여 추적 세션의 속성을 검사합니다.
실시간 및 로그 세션
추적 세션은 실시간 추적 세션과 추적 로그 세션이 될 수 있습니다. 동일한 명령에 -rt(실시간) 및 -f(로그 세션) 매개 변수를 포함하는 경우 시스템은 버퍼 콘텐츠를 로그와 추적 소비자에게 모두 보냅니다. 그러나 추적 로그 세션에 실시간 메시지 배달을 추가하려면 먼저 tracelog -flush 명령을 사용하여 버퍼를 플러시 해야 합니다.
실시간 세션(-rt)을 시작한 다음 로그 세션(-f)으로 업데이트하는 경우 새 추적 메시지는 로그 파일로만 전송됩니다. 실시간 세션에 로그 파일을 추가하려면 tracelog -update 명령에서 -rt 및 -f를 모두 사용합니다.
로그 세션(-f)을 시작하는 경우 실시간 세션(-rt)으로 업데이트할 수 있지만 추적 소비자 외에도 메시지가 계속 로그로 전송됩니다. 업데이트하여 세션에서 로그를 제거할 수 없습니다.
실시간 전용 세션에서 추적 메시지를 표시하거나 저장하려면 Tracefmt와 같은 추적 소비자를 사용하거나 추적 컨트롤러(예: Tracelog) 및 추적 소비자인 TraceView를 사용할 수도 있습니다. Tracefmt를 사용하는 경우 Tracefmt 명령에 -rt 매개 변수를 포함해야 합니다.
플래그 및 수준
플래그 또는 수준이 특정 값으로 설정되지 않는 한 대부분의 추적 공급자는 추적 메시지를 생성하지 않습니다. 공급자는 플래그 또는 수준을 사용하여 추적되는 내용을 제어합니다. 이벤트 추적 로그 파일이 비어 있는 경우 추적 공급자의 플래그 및 수준을 검토합니다.
추적 메시지가 항상 생성되도록 하려면 다음 단계를 완료합니다.
플래그 매개 변수를 0xFFFFFFFF 설정하여 모든 플래그 설정을 사용하도록 설정합니다.
수준 매개 변수를 255로 설정하여 모든 수준 설정을 사용하도록 설정합니다.
-eflag 매개 변수
Tracelog에는 NT 커널 로거 추적 세션에 대한 추가 플래그를 사용하도록 설계된 -eflag(확장 플래그) 매개 변수가 있습니다. 특히 플래그는 DPC, ISR 및 컨텍스트 스위치 이벤트를 추적할 수 있도록 합니다. 이제 tracelog -start 명령에 -dpcisr 매개 변수가 포함되므로 -eflag 매개 변수의 사용은 더 이상 필요하지 않으며 권장되지 않습니다.
오래된 매개 변수
이전 버전의 Tracelog에서 tracelog -start 명령은 -rt b 매개 변수 조합을 지원했습니다. 이 조합은 -buffering 매개 변수로 대체되었으며 더 이상 유효하지 않습니다.
모든 추적 세션을 중지하면 시스템 불안정이 발생할 수 있으므로 -x 매개 변수가 제거되었습니다.
-disableex 매개 변수가 제거되었습니다. 대신 -disable를 사용합니다.
NT 커널 로거
NT 커널 로거를 사용하여 추적 세션을 시작하려면 tracelog -start 명령에서 세션 이름을 생략하고 -guid 매개 변수를 사용하여 공급자 GUID 파일을 지정하지 않습니다. "NT 커널 로거" 는 기본 세션 이름입니다.
세션 이름을 생략하거나 "NT 커널 로거"인 경우 -guid 매개 변수를 사용하여 NT 커널 로거 추적 세션의 컨트롤 GUID인 SystemTraceControlGUID 이외의 GUID를 지정하는 경우에도 시스템에서 NT 커널 로거 추적 세션을 시작합니다. 다른 GUID를 지정하면 시스템에서 오류를 반환하지만("시스템 로거가 애플리케이션 GUID를 허용하지 않음" ) NT 커널 로거 추적 세션이 계속 시작됩니다.
기본적으로 Tracelog는 NT 커널 로거 추적 세션을 시작할 때 프로세스, 스레드, 실제 디스크 I/O 및 TCP/IP 이벤트의 추적을 사용하도록 설정하지만 매개 변수를 사용하여 이러한 이벤트의 추적을 사용하지 않도록 설정하고 다른 이벤트를 추적할 수 있습니다.
DPC/ISR 이벤트
Tracerpt는 시스템 성능 카운터 클록 시간을 타임스탬프로 예상하므로 추적 세션을 시작할 때 Tracelog -UsePerfCounter 매개 변수를 사용합니다.
DPC 및 ISR 이벤트는 특수 계측에 의해 수집되므로 Tracelog가 명령을 확인하기 위해 표시하는 테이블의 사용 추적 행에 표시되지 않습니다.
자세한 내용은 예제 15: DPC/ISR 시간 측정을 참조 하세요.