【问题标题】:Specific data from EventLogEntry来自 EventLogEntry 的特定数据
【发布时间】:2016-05-13 07:19:36
【问题描述】:

所以我知道如何使用以下方法访问 EventLog 的每个条目:

EventLog log = new EventLog("Security", //YourDomain);
foreach(EventLogEntry entry in log.Entries)
{
    //What ever you want to do with entry
}

但我需要访问这些数据:

有谁知道如何进行?

【问题讨论】:

  • 我已将您的答案复制到实际答案中。如果您想自己回答这个问题,请告诉我,我将删除我添加的 wiki。您应该避免将答案放在问题中

标签: c# event-log


【解决方案1】:

复制的 OP 问题

所以我自己找到了解决方案,希望对大家有所帮助!

解决办法如下:

//The query sort the evenlog so write the characteristics you need
string query = "*[System/Level=3 or Level=4]";

/*Select here the eventlog you want to watch, PathType.LogName and also the query you wrote right above*/
EventLogQuery eventsQuery = new EventLogQuery("System", PathType.LogName, query);
try
{
    EventLogReader logReader = new EventLogReader(eventsQuery);
    for (EventRecord eventdetail = logReader.ReadEvent(); eventdetail != null; eventdetail = logReader.ReadEvent())
    {
        //Get the XML for each entry
        /* /!\ eventdetail.ToXml() return a string, that's why you can use string properties*/
            var doc = eventdetail.ToXml();
        //Select the part of the XML you need
            int first = doc.IndexOf("<EventData>") + "<EventData>".Length;
            int last = doc.IndexOf("</EventData>");
            string finaldoc = doc.Substring(first, last - first);

        //Display the xml before and after selection
            Console.WriteLine(doc+System.Environment.NewLine);
            Console.WriteLine(finaldoc);
            Console.ReadKey();
   }
}
catch (Exception e)
{
    Console.WriteLine("Error while reading the event logs"+e.Message);
    Console.ReadKey();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-04
    • 2016-11-24
    • 2017-05-03
    • 1970-01-01
    • 2015-09-23
    • 2020-05-24
    • 2011-09-15
    • 1970-01-01
    相关资源
    最近更新 更多