如何在Windows XP上使用C#从特定事件日志条目中获取xml?我已经知道事件日志类型(安全性)和事件条目ID。
EventLogWatcher和其他类只是Vista + ...
答案 0 :(得分:0)
您可以使用LogParser执行此操作。它是一个由x Microsoft员工Gabriele Giuseppini构建的实用程序,它读取大量日志文件格式 - FAST!
之前我已成功将其用于Event Logs。
的优秀人才的C#界面答案 1 :(得分:0)
对于 Windows XP,您可以使用 EventLogReader
和 EventLogQuery
类非常有效地从事件日志中查询 EventLogRecords
。此 API 从 .NET Framework 3.5 开始可用(因此它应该可以在 Windows XP 上正常运行)。
首先,您需要要查询的事件日志的名称(其文件系统路径或名称),其次是用作记录选择器的 XPath 表达式。 https://docs.microsoft.com/en-us/windows/win32/wes/consuming-events
给出了一些示例基本上,它的工作原理如下:
static string RetrieveApplicationEventDetailsXmlById(string eventId)
{
const string logName = "Application";
string queryExpression = string.Format("*[System/EventId=\"{0}\"]", eventId);
var eventLogQuery = new EventLogQuery(logName, PathType.LogName, queryExpression);
using (var reader = new EventLogReader(eventLogQuery))
{
EventRecord record;
if ((record = reader.Next()) != null)
{
return record.ToXml();
}
}
return null;
}
如果指定了有效的 XPath 表达式,则调用读取器的 Next
方法将返回下一个可用的 LogEventRecord
对象,该对象允许通过 { {1}} 方法。