답변:
.NET의 EventLog 및 EventLogEntry 클래스를 살펴보면 특히 후자의 Category 속성에 대한 힌트를 얻을 수 있습니다.
각 응용 프로그램 (이벤트 소스)은 고유 한 번호가 매겨진 범주와 해당 범주가 매핑되는 텍스트 문자열을 정의 할 수 있습니다. 이벤트 뷰어는 범주를 사용하여 로그에서 이벤트를 필터링 할 수 있습니다.
또한 이벤트 카테고리 페이지에 다음과 같이 표시됩니다 .
범주는 이벤트 뷰어가 이벤트를 필터링 할 수 있도록 이벤트를 구성하는 데 도움이됩니다. 각 이벤트 소스 는 고유 한 번호가 매겨진 카테고리와 이들이 맵핑되는 텍스트 문자열을 정의 할 수 있습니다.
이 페이지는 앱 (이벤트 소스)이 자체 이벤트 범주를 정의하는 방법을 보여줍니다. 이 예제를 Win7 및 Server 2008 R2 에서 작동시키는 방법에 대한 유용한 팁을 여기에서 얻을 수 있습니다 . 이벤트 로그 범주 사용자 정의 에 대한이 Dr. Dobb의 기사 도 유용 할 수 있습니다. 더 많은 자습서가 제공되며 코드에 대한 도움이 필요한 경우 스택 오버플로가 도움이 될 것입니다.
참고 : AFAIK에는이 필드에 대한 표준 값 세트가 없습니다. 앱은 자체 사용자 지정 문자열을 사용할 수 있기 때문입니다. 물론 Windows 자체에서 사용하는 것을 사용하려면 일부 리소스 / 헤더 / 메시지 파일에 정의해야합니다.
응용 프로그램은 자체 작업 범주를 만들 수 있습니다. 애플리케이션이 자체 이벤트 메시지 텍스트를 작성하는 것과 같은 방식으로 작동합니다. .mc 파일에 넣고 Message Compiler를 사용하여 .rc 파일로 컴파일하고 Resource Compiler를 사용하여 .res 파일로 컴파일하십시오. link.exe를 사용하여 DLL로 컴파일하십시오.
이전에 한 번도 해 본 적이 없다면 http://www.eventlogblog.com/mt/mt-search.cgi?search=python&IncludeBlogs=1에 일류 자습서가 있습니다 . 최근에 시도했지만 실행 파일과 DLL에 대해 PATH에 추가 폴더를 설정해야하지만 현재 버전의 Platform SDK 및 Visual Studio Express에서 계속 작동합니다.
범주 텍스트는 자체 DLL에있을 수 있지만 메시지와 같은 DLL에 넣을 수도 있습니다. 그렇게하면 범주는 .mc 파일의 시작 부분에 있어야하며 간격없이 1부터 시작해야합니다. DLL의 레지스트리 항목에서 Windows에게 몇 개의 메시지가 카테고리인지 (예 : 5) 알리고 처음 5 개의 메시지를 카테고리로 취급합니다.