기본적으로 정기적 인 로깅 기능을 제공하는 몇 가지 메소드 중 최소 하나를 갖는 EventSource를 선언 할 수 있기를 바랍니다.ETW에서 EventSource를 서브 클래스화할 수 있습니까?
- 정보()
- 은 (경고)
- 오류() 각 서비스 내에서 상속 특정 이벤트 소스를 정의하는 것 외에도
내가 수 있도록하고 싶습니다 상기를 제공하는 기본 클래스. 현재 매니페스트를 만드는 EventRegister.exe 앱은 이벤트 소스를 봉인해야한다고 불평합니다.
내가 잘못 했나요? 그렇다면 어떻게해야 이상을 얻을 수 있습니까? 나는 엔터프라이즈 라이브러리에서 슬래브는 달리 채널에 대한 지원을하고 이해 최신의 그리고 최고의 Microsoft.Diagnostics.Tracing (사전)을 사용하고
public class ETWBase : EventSource
{
[Event(1, Channel = EventChannel.Admin, Message = "Info Message: {0}")]
public void Info(string message) { this.WriteEvent(1); }
[Event(2, Channel = EventChannel.Debug, Message = "Debug Message: {0}")]
public void Trace(string message) { this.WriteEvent(2); }
}
[EventSource(Name = "ABC-MyEtwServiceEventSource")]
public sealed class MyEtwServiceEventSource : ETWBase
{
public static MyEtwServiceEventSource Log = new MyEtwServiceEventSource();
[Event(3, Channel = EventChannel.Debug, Message = "My specific Message: {0}")]
public void Trace(string message) { this.WriteEvent(3); }
}
: 예제 코드를 참조하십시오.
Microsoft.Diagnostics.Tracing (pre)은 클래스가 봉인 될 것으로 예상합니다. EventSource를 상속받은 클래스는 봉인되어야하며 봉인 된 것으로 표시하지 않으면 매니페스트를 생성 할 수 없습니다. 나는 이것이 효과가 있을지 의심 스럽다. – KRP
넓은 시스템에서 여러 EventSources에 공통적 인 메소드를 공유하려면 어떻게해야합니까? – jaffa
나는 그 앞에서 정말로 확신 할 수 없다. 나는 그것을 할 수 없다고 생각한다. – KRP