Microsoft TraceEvent - 如何登录到事件查看器
Microsoft TraceEvent - How to log to the Event Viewer
使用 Microsoft.Diagnostics.Tracing EventSource 库(不要误认为 System.Diagnostics.Tracing),可以通过向名为 [= 的事件注释添加属性来将某些消息记录到事件查看器15=]。但是,这会将输出转储到 'Windows Logs\Application' 区域。我怎样才能让它登录到 'Applications and Service Logs\MyApp\MyFeature'?
示例代码:
[EventSource(Name = "MyDemoApp")]
public sealed class MyDemoEventSource : EventSource
{
private MyDemoEventSource () { }
...
public const EventTask MyDemoTask = (EventTask) 12345;
...
[Event(12345,
Message = "My Demo Error: {0}",
Level = EventLevel.Warning,
Channel = EventChannel.Admin,
Task = Tasks.MyDemoTask,
Keywords = Keywords.Rule,
Opcode = Opcodes.Fail)]
private void SomethingWentWrong(string ErrorMessage)
{
WriteEvent(12345, ErrorMessage);
}
感谢 Matthew Watson 为我指明了本文的方向,问题的解决方案包含在:
*请记住注册您的 EventSource,因为这是在事件查看器中实际创建条目的步骤,需要一个唯一的名称(如果您的 company/product 已经在事件查看器中有一个用于其他目的的条目确保使用新名称)。
使用 Microsoft.Diagnostics.Tracing EventSource 库(不要误认为 System.Diagnostics.Tracing),可以通过向名为 [= 的事件注释添加属性来将某些消息记录到事件查看器15=]。但是,这会将输出转储到 'Windows Logs\Application' 区域。我怎样才能让它登录到 'Applications and Service Logs\MyApp\MyFeature'?
示例代码:
[EventSource(Name = "MyDemoApp")]
public sealed class MyDemoEventSource : EventSource
{
private MyDemoEventSource () { }
...
public const EventTask MyDemoTask = (EventTask) 12345;
...
[Event(12345,
Message = "My Demo Error: {0}",
Level = EventLevel.Warning,
Channel = EventChannel.Admin,
Task = Tasks.MyDemoTask,
Keywords = Keywords.Rule,
Opcode = Opcodes.Fail)]
private void SomethingWentWrong(string ErrorMessage)
{
WriteEvent(12345, ErrorMessage);
}
感谢 Matthew Watson 为我指明了本文的方向,问题的解决方案包含在:
*请记住注册您的 EventSource,因为这是在事件查看器中实际创建条目的步骤,需要一个唯一的名称(如果您的 company/product 已经在事件查看器中有一个用于其他目的的条目确保使用新名称)。