1

使用 Microsoft.Diagnostics.Tracing EventSource 库(不要误认为 System.Diagnostics.Tracing),可以通过向名为“Channel”的事件注释添加属性来将某些消息记录到事件查看器。但是,这会将输出转储到“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);
    }
4

1 回答 1

1

感谢 Matthew Watson 为我指明了本文的方向,问题的解决方案包含在:

https://blogs.msdn.microsoft.com/dotnet/2014/01/30/microsoft-diagnostics-tracing-eventsource-is-now-stable/

*请记住注册您的 EventSource,因为这是在事件查看器中实际创建条目的步骤,需要唯一的名称(如果您的公司/产品已经在事件查看器中有一个条目用于其他目的,请确保您使用新名称)。

于 2016-03-09T10:08:40.530 回答