[英]Read XML from EventLog in Windows Event Viewer on Windows XP with C#
如何在 Windows XP 上使用C#
從特定的EventLogEntry
獲取 XML? 我已經知道EventLog
類型(安全性)和事件條目 ID。
EventLogWatcher
和其他類僅在 Windows Vista 和更新版本中可用。
您可以使用LogParser執行此操作。 它是由 x Microsoft 員工 Gabriele Giuseppini 構建的實用程序,可讀取大量日志文件格式 - 快!
我之前已經成功地將它與事件日志一起使用。
在http://visuallogparser.codeplex.com 上有一個來自好人的 C# 接口
對於 Windows XP,您可以使用EventLogReader
和EventLogQuery
類非常有效地從事件日志中查詢EventLogRecords
。 此 API 從 .NET Framework 3.5 開始可用(因此它在 Windows XP 上應該可以正常工作)。
首先,您需要要查詢的事件日志的名稱(其文件系統路徑或名稱),其次是用作記錄選擇器的 XPath 表達式。 https://docs.microsoft.com/en-us/windows/win32/wes/sumption-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
對象,該對象允許通過ToXml
方法以 XML 格式檢索事件的詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.