我希望能声明一个EventSource,它至少拥有几个方法,这些方法默认提供常规的日志功能。
例如:
- Info() - Warn() - Error()
此外,我希望在每个服务中定义一个特定的事件源,该事件源从提供上述功能的基类继承而来。 目前,创建清单的EventRegister.exe应用程序会抱怨事件源必须是密封的。
我做错了吗?如果是这样,我该如何实现上述要求? 请参考以下示例代码:
例如:
- Info() - Warn() - Error()
此外,我希望在每个服务中定义一个特定的事件源,该事件源从提供上述功能的基类继承而来。 目前,创建清单的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(pre),它具有通道的支持,不同于Enterprise Library中的SLAB。