如何从事件日志记录中获取RenderingInfo?

时间:2016-04-26 21:23:35

标签: c# windows winapi wmi event-log

我一直在尝试找到从远程服务器检索事件的不同方法。目前我们正在使用Wevtutil.exe,但服务器之间的延迟使得该工具非常慢(约90个事件/秒)。

C#的EventLogQuery / EventLogReader / EventLogRecord更快地提取事件(~5800个事件/秒),但输出缺少事件的RenderingInfo。 EventLogRecord的ToXml()方法表示输出将符合事件模式which has RenderingInfo,但输出.xml没有。

没有RenderingInfo:

<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'>
    <System>
      <Provider Name='TestSource'/>
      <EventID Qualifiers='0'>555</EventID>
      <Level>4</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime='2016-04-25T19:17:15.260504300Z'/>
      <EventRecordID>211346</EventRecordID>
      <Channel>TestLog</Channel>
      <Computer>MyComputer</Computer>
      <Security/>
    </System>
    <EventData>
      <Data>1</Data>
    </EventData>
  </Event>

使用:

<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'>
    <System>
      <Provider Name='TestSource'/>
      <EventID Qualifiers='0'>555</EventID>
      <Level>4</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime='2016-04-25T19:17:15.260504300Z'/>
      <EventRecordID>211346</EventRecordID>
      <Channel>TestLog</Channel>
      <Computer>MyComputer</Computer>
      <Security/>
    </System>
    <EventData>
      <Data>1</Data>
    </EventData>
    <RenderingInfo Culture='en-US'>
      <Message>1</Message>
      <Level>Information</Level>
      <Task></Task>
      <Opcode>Info</Opcode>
      <Channel></Channel>
      <Provider></Provider>
      <Keywords>
        <Keyword>Classic</Keyword>
      </Keywords>
    </RenderingInfo>
  </Event>

我似乎无法找到有关RenderingInfo或如何获取它的更多信息。

如何使用EventLogReader获取RenderingInfo?

什么是RenderingInfo以及我可以通过其他方式获得它?

我一直在寻找其他方法来检索事件(WMI,WinAPI,EventLog,LogParser.exe),但我不确定哪种解决方案会让我最快的RendingInfo。

0 个答案:

没有答案