我想连接到本地日志并从中获取一些事件。我使用此代码:
EventLog el = new EventLog();
el.Source = "";
但我不知道什么是本地EventLog源。 有谁知道什么是本地来源?
答案 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)
这取决于您要阅读的日志类型。它可以是Application
,Security
,Setup
或System
。
您可以在事件查看器中看到可用的来源:
答案 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);
}