访问C#中的本地事件日志

时间:2011-11-21 20:03:14

标签: c# c#-4.0 event-log

我想连接到本地日志并从中获取一些事件。我使用此代码:

EventLog el = new EventLog();
el.Source = "";

但我不知道什么是本地EventLog源。 有谁知道什么是本地来源?

3 个答案:

答案 0 :(得分:2)

我在一个月之前制作了一个程序:(使用xpath查询)

 const string queryString = @"<QueryList>  <Query Id=""0"" Path=""Security"">    <Select Path=""Security"">*</Select>  </Query></QueryList>";

        EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, queryString);
        eventsQuery.ReverseDirection = true;
        EventLogReader logReader = new EventLogReader(eventsQuery);

        for (EventRecord eventInstance = logReader.ReadEvent();
            null != eventInstance; eventInstance = logReader.ReadEvent())
        {
            foreach (var VARIABLE in  eventInstance.Properties)
                if (VARIABLE.Value.ToString().ToLower().Contains(...)
                {
                    ...
                }
         }

答案 1 :(得分:2)

这取决于您要阅读的日志类型。它可以是ApplicationSecuritySetupSystem

您可以在事件查看器中看到可用的来源:

enter image description here

答案 2 :(得分:0)

根据您的问题......什么是本地来源 - 您是说您想要一个来源列表,还是只想确认本地来源是进程运行的机器?

至于枚举事件......有很多不同的方法可以做到这一点,包括

var log = new EventLog("Application");
res = from entry in log.Entries.Cast<EventLogEntry>()
 entry.TimeGenerated >= start
  select entry;


                foreach (var e in res)
                {
                    Console.WriteLine(e.Message);
                }