簡體   English   中英

使用 C# 從 Windows XP 上的 Windows 事件查看器中的 EventLog 讀取 XML

[英]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,您可以使用EventLogReaderEventLogQuery類非常有效地從事件日志中查詢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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM