访问本地事件日志在C#
问题描述:
我想连接到本地日志,并得到一些事件,从它。我用这个代码:访问本地事件日志在C#
EventLog el = new EventLog();
el.Source = "";
但我不知道是什么地方的EventLog源。 有谁知道当地的来源是什么?
答
这要看从哪个登录你想读的类型。它可能是Application
,Security
,Setup
或System
。
您可以在事件查看器来源可看到:
答
我这样一个月前做了一个计划:(使用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(...)
{
...
}
}
答
通过你的问题......什么是本地源 - 你想要的来源,或只是一个列表你的意思想确认本地源是进程正在运行的机器?
如果要列举的事件......有很多不同的方式来做到这一点,包括
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);
}
什么是EventLogQuery命名空间? –
@ahmadalishafiee:当您搜索命名空间时,请在msdn中搜索该项目:http://msdn.microsoft.com/en-us/library/system.diagnostics.eventing.reader.eventlogquery.aspx =>命名空间是在左边的树上指示:'System.Diagnostics.Eventing.Reader'。 – Otiel
继续获取授权例外,互联网上没有任何地方解释了这个... – jjxtra