로깅 모드 상수

다음 상수는 이벤트 추적 세션에 사용할 수 있는 로깅 모드를 나타냅니다.

상수는 EVENT_TRACE_LOGFILE, EVENT_TRACE_PROPERTIESTRACE_LOGFILE_HEADER 구조체의 LogFileMode 멤버에서 사용됩니다. 이러한 상수는 Evntrace.h 헤더 파일에 정의됩니다.

Mode Description
EVENT_TRACE_FILE_MODE_NONE (0x00000000) 최대 파일 크기가 지정되지 않은 EVENT_TRACE_FILE_MODE_SEQUENTIAL 동일합니다.
EVENT_TRACE_FILE_MODE_SEQUENTIAL (0x00000001) 이벤트를 로그 파일에 순차적으로 씁니다. 는 파일이 최대 크기에 도달하면 중지됩니다. EVENT_TRACE_FILE_MODE_CIRCULAR 또는 EVENT_TRACE_FILE_MODE_NEWFILE 사용하지 마세요.
EVENT_TRACE_FILE_MODE_CIRCULAR (0x00000002) 로그 파일에 이벤트를 씁니다. 파일이 최대 크기에 도달하면 가장 오래된 이벤트가 들어오는 이벤트로 바뀝니다. 순환 로그 파일의 내용이 다중 프로세서 컴퓨터에서 순서대로 표시되지 않을 수 있습니다.
EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE 또는 EVENT_TRACE_FILE_MODE_SEQUENTIAL 사용하지 마세요.
EVENT_TRACE_FILE_MODE_APPEND (0x00000004) 기존 순차 로그 파일에 이벤트를 추가합니다. 이 파일이 없으면 자동으로 만들어집니다. 시계 해상도에 대한 시스템 시간을 지정하는 경우에만 를 사용합니다. 그렇지 않으면 ProcessTrace 는 잘못된 타임스탬프를 사용하여 이벤트를 반환합니다. EVENT_TRACE_FILE_MODE_APPEND 사용하는 경우 BufferSize, NumberOfProcessorsClockType에 대한 값은 명시적으로 제공되어야 하며 로거와 추가되는 파일 모두에서 동일해야 합니다.
EVENT_TRACE_REAL_TIME_MODE, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_NEWFILE 또는 EVENT_TRACE_PRIVATE_LOGGER_MODE 사용하지 마세요.
Windows 2000: 이 값은 지원되지 않습니다.
EVENT_TRACE_FILE_MODE_NEWFILE (0x00000008) 파일이 최대 크기에 도달하면 자동으로 새 로그 파일로 전환됩니다. EVENT_TRACE_PROPERTIESMaximumFileSize 멤버를 설정해야 합니다. 지정된 파일 이름은 형식이 지정된 문자열이어야 합니다(예: 문자열에 %d(예: c:\test%d.etl)). 새 파일을 만들 때마다 카운터가 증분되고 해당 값이 사용되고 형식이 지정된 문자열이 업데이트되고 결과 문자열이 파일 이름으로 사용됩니다.
이 옵션은 프라이빗 이벤트 추적 세션에 사용할 수 없으며 NT 커널 로거 세션에 사용하면 안 됩니다.
EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND 또는 EVENT_TRACE_FILE_MODE_SEQUENTIAL 사용하지 마세요.
Windows 2000: 이 값은 지원되지 않습니다.
EVENT_TRACE_FILE_MODE_PREALLOCATE(0x00000020) EVENT_TRACE_PROPERTIES 예약합니다 . MaximumFileSize 로그 파일의 디스크 공간 바이트를 미리 지정합니다. 이 파일은 순환 및 순차 로그 파일 모두에 대해 로깅하는 동안 전체 공간을 차지합니다. 세션을 중지하면 로그 파일이 필요한 크기로 줄어듭니다. EVENT_TRACE_PROPERTIES 설정해야 합니다 . MaximumFileSize.
프라이빗 이벤트 추적 세션에는 모드를 사용할 수 없습니다.
Windows 2000: 이 값은 지원되지 않습니다.
EVENT_TRACE_NONSTOPPABLE_MODE(0x00000040) 로깅 세션을 중지할 수 없습니다. 이 모드는 Autologger에서만 지원됩니다.이 옵션은 Windows Vista 이상에서 지원됩니다.
.
EVENT_TRACE_SECURE_MODE (0X00000080) 세션에 이벤트를 기록할 수 있는 사용자를 TRACELOG_LOG_EVENT 권한이 있는 사용자로 제한합니다. 이 옵션은 Windows Vista 이상에서 지원됩니다.
EVENT_TRACE_REAL_TIME_MODE (0x00000100) 실시간으로 소비자에게 이벤트를 전달합니다. 이벤트는 공급자가 이벤트를 쓸 때가 아니라 버퍼가 플러시될 때 전달됩니다. 버퍼가 가득 차면 로그 이벤트에 대한 호출이 결국 실패하기 때문에 이벤트를 사용할 소비자가 없는 경우 실시간 모드를 사용하도록 설정하면 안 됩니다. Windows Vista 이전에는 이벤트가 사용되지 않으면 이벤트가 삭제되었습니다. Windows XP 또는Windows Server 2003의 한 프로세스에서 두 개 이상의 실시간 소비자를 지정하지 마세요. 대신 한 스레드가 이벤트를 사용하고 이벤트를 다른 스레드에 배포하도록 합니다.
Windows Vista 이전: 지원되는 이벤트 속도가 로그 파일에서 읽는 것보다 훨씬 낮기 때문에 실시간 모드를 사용하면 안 됩니다(이벤트가 삭제될 수 있음). 또한 여러 프로세서가 있는 컴퓨터에서는 이벤트 순서가 보장되지 않습니다. 실시간 모드는 트래픽이 적은 알림 유형 이벤트에 더 적합합니다.

이 모드를 다른 로그 파일 모드와 결합할 수 있습니다. 그러나 이 모드는 EVENT_TRACE_PRIVATE_LOGGER_MODE 사용하지 마세요. 이 모드를 다른 로그 파일 모드와 결합하면 버퍼가 초당 한 번씩 플러시되어 부분적으로 채워진 버퍼가 로그 파일에 기록됩니다. 예를 들어 64k 버퍼를 사용하고 로깅 속도가 초당 1개 이벤트인 경우 서비스는 로그 파일에 64k/초를 씁니다.
EVENT_TRACE_DELAY_OPEN_FILE_MODE(0x00000200) 이 모드는 이벤트가 발생할 때까지 로그 파일 열기를 지연하는 데 사용됩니다.
참고:
Windows Vista 이상에서는 이 모드를 적용할 수 없으며 사용하지 않아야 합니다.
EVENT_TRACE_BUFFERING_MODE (0x00000400) 이 모드는 순환 메모리 버퍼에 이벤트를 씁니다. 버퍼의 총 크기를 초과하여 작성된 이벤트는 버퍼에 남아 있는 가장 오래된 이벤트를 제거합니다. 이 메모리 버퍼의 크기는 MinimumBuffersBufferSize 의 곱입니다( EVENT_TRACE_PROPERTIES 참조). 이 수식의 결과로 EVENT_TRACE_BUFFERING_MODE 사용하는 버퍼는 MaximumBuffers 값을 무시합니다.
이벤트는 로그 파일에 기록되거나 실시간으로 전달되지 않으며 ETW는 버퍼를 플러시하지 않습니다. 버퍼의 스냅샷 얻으려면 FlushTrace 함수를 호출합니다.
이 모드는 WMITrace 커널 디버거 확장을 사용하여 메모리 내 버퍼의 콘텐츠를 볼 수 있는 기능과 함께 디바이스 드라이버를 디버깅하는 데 특히 유용합니다.
EVENT_TRACE_FILE_MODE_SEQUENTIAL, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE또는EVENT_TRACE_REAL_TIME_MODE 사용하지 마세요.
EVENT_TRACE_PRIVATE_LOGGER_MODE (0x00000800) 이벤트 추적 공급자와 동일한 프로세스에서 실행되는 사용자 모드 이벤트 추적 세션을 만듭니다. 버퍼에 대한 메모리는 프로세스의 메모리에서 가져옵니다. 커널의 데이터가 필요하지 않은 프로세스는 프라이빗 이벤트 추적 세션을 사용하여 커널 모드 전환과 관련된 오버헤드를 제거할 수 있습니다.
공급자가 여러 프로세스에 의해 등록된 경우 ETW는 프로세스 식별자를 로그 파일 이름에 추가하여 고유한 로그 파일 이름을 만듭니다. 예를 들어 컨트롤러가 로그 파일 이름을 c:\mylogs\myprivatelog.etl로 지정하는 경우 ETW는 로그 파일을 c:\mylogs\myprivatelog.etl_nnnn 만듭니다. 여기서 nnnn은 프로세스 식별자입니다. 프로세스 식별자는 공급자를 등록하는 첫 번째 프로세스에 추가되지 않으며 공급자를 등록하는 후속 프로세스에만 추가됩니다.
프라이빗 이벤트 추적 세션에는 다음과 같은 제한 사항이 있습니다.
  • 프라이빗 세션은 실행 중인 프로세스의 스레드에 대해서만 이벤트를 기록할 수 있습니다.
  • 프로세스당 최대 8개의 프라이빗 세션이 있을 수 있습니다.
  • 비공개 세션은 실시간 배달과 함께 사용할 수 없습니다.
  • 프라이빗 세션에서 생성되는 이벤트에는 커널 모드와 사용자 모드 명령의 실행 시간 또는 사용된 CPU 시간의 스레드 수준 세부 정보가 포함되지 않습니다.
이제 시스템 전체 프라이빗 로거가 시작될 때 프로세스 ID 필터 및 실행 파일 이름 필터를 세션 제어 API에 전달할 수 있습니다. 프로세스 간 시나리오에서 최상의 결과를 위해 공급자 사용/디아스블 호출을 포함하여 세션 중 모든 컨트롤 작업에 동일한 필터를 전달해야 합니다. 필터의 형식은 EnableTraceEx2에서 사용하는 것과 동일합니다.
EVENT_TRACE_PRIVATE_IN_PROC 모드와 함께 이 모드를 사용할 수 있습니다.
Windows 10 이전 버전 1703: 관리자 권한 프로세스에서 실행되는 관리자 그룹의 LocalSystem, 관리자 및 사용자만 프라이빗 세션을 만들 수 있습니다. EVENT_TRACE_PRIVATE_IN_PROC 플래그를 포함하면 모든 사용자가 in-process 프라이빗 세션을 만들 수 있습니다. 또한 이전 버전의 Windows에서는 프로세스당 하나의 프라이빗 세션만 있을 수 있습니다(EVENT_TRACE_PRIVATE_IN_PROC 모드도 지정되지 않은 경우 최대 3개의 In Process 프라이빗 세션을 만들 수 있습니다).
Windows Vista 이전: 성능 로그 사용자 그룹의 사용자는 프라이빗 세션을 만들 수도 있습니다.

EVENT_TRACE_REAL_TIME_MODE 함께 사용하지 마세요.
Windows 7 및 Windows Server 2008 R2 이전: EVENT_TRACE_FILE_MODE_NEWFILE 함께 사용하지 마세요.
EVENT_TRACE_ADD_HEADER_MODE(0x00001000) 이 옵션은 로그 파일에 헤더를 추가합니다.
참고:
Windows Vista 이상에서는 이 모드를 적용할 수 없으며 사용하지 않아야 합니다.
EVENT_TRACE_USE_KBYTES_FOR_SIZE(0x00002000) 파일 크기를 지정하기 위한 측정 단위로 킬로바이트 를 사용합니다. 기본 측정 단위는 메가바이트입니다. 이 모드는 AutoLogger 세션의 MaxFileSize 레지스트리 값과 EVENT_TRACE_PROPERTIESMaximumFileSize 멤버에 적용됩니다. 이 옵션은 Windows Vista 이상에서 지원됩니다.
EVENT_TRACE_USE_GLOBAL_SEQUENCE(0x00004000) 이벤트 추적 세션에서 고유한 시퀀스 번호를 사용합니다. 이 모드는 TraceMessage 함수를 사용하여 기록된 이벤트에만 적용됩니다. 자세한 내용은 사용량 세부 정보는 TraceMessage 를 참조하세요.
EVENT_TRACE_USE_GLOBAL_SEQUENCEEVENT_TRACE_USE_LOCAL_SEQUENCE 상호 배타적입니다.
Windows 2000: 이 값은 지원되지 않습니다.
EVENT_TRACE_USE_LOCAL_SEQUENCE (0x00008000) 개별 이벤트 추적 세션에만 고유한 시퀀스 번호를 사용합니다. 이 모드는 TraceMessage 함수를 사용하여 기록된 이벤트에만 적용됩니다. 자세한 내용은 사용량 세부 정보는 TraceMessage 를 참조하세요.
EVENT_TRACE_USE_GLOBAL_SEQUENCEEVENT_TRACE_USE_LOCAL_SEQUENCE 상호 배타적입니다.
Windows 2000: 이 값은 지원되지 않습니다.
EVENT_TRACE_RELOG_MODE (0x00010000) EVENT_TRACE_HEADER 포함하지 않고 이벤트를 기록합니다. 참고:
이 모드를 사용하면 안 됩니다. 내부용으로 예약되어 있습니다.
Windows 2000: 이 값은 지원되지 않습니다.
EVENT_TRACE_PRIVATE_IN_PROC (0x00020000) EVENT_TRACE_PRIVATE_LOGGER_MODE 모드와 함께 를 사용하여 프라이빗 세션을 시작합니다. 이 모드는 공급자 GUID를 등록한 프로세스만 해당 GUID를 사용하여 로거 세션을 시작할 수 있도록 합니다.
프로세스당 최대 3개의 In-Process 프라이빗 세션을 만들 수 있습니다.
이 옵션은 Windows Vista 이상에서 지원됩니다.
EVENT_TRACE_MODE_RESERVED(0x00100000) 이 옵션은 힙 및 중요 섹션 추적을 신호하는 데 사용됩니다. 이 옵션은 Windows Vista 이상에서 지원됩니다.
EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN(0x00400000) 이 옵션은 하이브리드 종료에 대한 로깅을 중지합니다. EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN 또는 EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN 지정되지 않은 경우 ETW는 호출자가 세션 0에서 오는지 여부에 따라 기본값을 선택합니다. 이 옵션은 Windows 8 및 Windows Server 2012에서 지원됩니다.
EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN(0x00800000) 이 옵션은 하이브리드 종료에 대한 로깅을 계속합니다. EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN 또는 EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN 지정되지 않은 경우 ETW는 호출자가 세션 0에서 오는지 여부에 따라 기본값을 선택합니다. 이 옵션은 Windows 8 및 Windows Server 2012에서 지원됩니다.
EVENT_TRACE_USE_PAGED_MEMORY (0x01000000) 페이징된 메모리를 사용합니다. 이 설정은 이벤트가 페이징되지 않은 메모리를 사용하지 않도록 하는 것이 좋습니다. 페이지가 지정하지 않은 버퍼는 버퍼 공간에 대해 페이지가 없는 메모리를 사용합니다. 페이징되지 않은 버퍼는 페이징되지 않으므로 로깅 세션이 잘 수행됩니다. 페이지 가능 버퍼를 사용하는 경우 리소스를 덜 많이 사용합니다.
커널 모드 공급자 및 시스템 로거는 이 로깅 모드를 지정하는 세션에 이벤트를 기록할 수 없습니다.
EVENT_TRACE_PRIVATE_LOGGER_MODE 설정된 경우 이 모드는 무시됩니다.
NT 커널 로거에서는 이 모드를 사용할 수 없습니다.
Windows 2000: 이 값은 지원되지 않습니다.
EVENT_TRACE_SYSTEM_LOGGER_MODE(0x02000000) 이 옵션은 SystemTraceProvider에서 이벤트를 수신합니다. StartTrace속성 매개 변수 LogFileMode에 이 플래그가 포함된 경우 로거는 시스템 로거가 됩니다. 이 옵션은 Windows 8 및 Windows Server 2012에서 지원됩니다.
EVENT_TRACE_INDEPENDENT_SESSION_MODE(0x08000000) 다른 세션의 EventWrite 오류로 인해 로깅 세션이 영향을 받지 않아야 했음을 나타냅니다. 이 플래그가 없으면 공급자가 사용하도록 설정된 세션 중 하나에 이벤트를 게시할 수 없는 경우 이벤트는 세션에 게시되지 않습니다. 이 플래그가 설정되면 한 세션에 이벤트를 작성하지 못하면 EventWrite 함수가 다른 세션에서 오류 코드를 반환하지 않습니다.
EVENT_TRACE_PRIVATE_LOGGER_MODE 함께 사용하지 마세요.
이 옵션은 Windows 8.1, Windows Server 2012 R2 이상에서 지원됩니다.
EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING (0x10000000) 다른 프로세서에 기록된 이벤트를 공통 버퍼에 씁니다. 이 모드를 사용하면 시스템 시간을 사용하여 이벤트가 다른 프로세서에 게시될 때 이벤트가 순서대로 표시되지 않는 문제를 제거할 수 있습니다. 이 모드는 여러 프로세서 컴퓨터에서 이벤트를 삭제하는 순환 로그가 나타나는 문제를 제거할 수도 있습니다.
이 모드를 사용하지 않고 시스템 시간을 사용하는 경우 여러 프로세서 컴퓨터에서 이벤트가 순서대로 표시되지 않을 수 있습니다. ETW 버퍼가 스레드 대신 프로세서와 연결되기 때문입니다. 따라서 스레드가 한 CPU에서 다른 CPU로 전환되면 후자의 CPU와 연결된 버퍼를 이전 CPU와 연결된 버퍼 앞에 디스크로 플러시할 수 있습니다.
많은 양의 이벤트(예: 초당 1,000개 이상의 이벤트)가 필요한 경우 이 모드를 사용하면 안 됩니다.
프로세서 번호는 이벤트에 포함되지 않습니다.
이 옵션은 Windows 7, Windows Server 2008 R2 이상에서 지원됩니다.
EVENT_TRACE_ADDTO_TRIAGE_DUMP(0x80000000) 이 옵션은 심사 덤프에 ETW 버퍼를 추가합니다. 이 옵션은 Windows 8 및 Windows Server 2012에서 지원됩니다.