是否有可能在ETW中继承EventSource?
我希望能够声明一个EventSource,它至少有几个默认提供常规日志记录功能的方法。
例如
另外我希望能够在每个服务中定义一个从提供上述基类的继承的特定事件源。 此时创建清单的EventRegister.exe应用程序会抱怨事件源必须密封。
我做错了吗? 如果是的话我怎么能达到上述? 请参阅示例代码:
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(前),我了解它支持Channels,与Enterprise Library中的SLAB不同。
ETWBase应该是抽象的,不应该有由EventAttribute装饰的方法。
如果您引用的是事件源或事件源示例nuget包,则可以在正在添加到项目的文档文件_EventSourceUsersGuide.docx
中找到更多信息。
上一篇: Is it possible to subclass an EventSource in ETW?
下一篇: App Purchase Sandbox