2 Stimmen

Serialisierung einer .NET EventLogEntry-Instanz nach XML

Wenn Sie die Ereignisanzeige in Windows 7 verwenden, gibt es eine separate "XML-Ansicht" eines Ereignisses, auf die Sie über das Dialogfeld "Ereigniseigenschaften" zugreifen können. Diese XML-Ansicht bezieht sich auf die http://schemas.microsoft.com/win/2004/08/events/event Namensraum.

Wenn ich Windows-Ereignisse mithilfe der .NET-Framework-Klassen in der System.Diagnostics Namespace und rufen Sie Ereignisobjekte in Form von EventLogEntry Instanzen, gibt es eine Möglichkeit, diese Instanzen in das oben erwähnte XML-Format zu serialisieren? Ich kann anscheinend keine finden.

Vielen Dank für Ihre Antwort.

アップデート : Dank jmservera habe ich herausgefunden, dass es eine andere und bessere API in der System.Diagnostics.Eventing.Reader Namespace, allerdings unterstützt diese API nicht die Bereitstellung auf Windows Server 2003/XP.

Aktualisierung 2 : Ich habe die Antwort von jmservera akzeptiert, weil sie mich zur Lösung geführt hat. Wenn Sie auf Vista/Windows Server 2008 abzielen, folgen Sie dem Vorschlag von jmservera und verwenden Sie die API im neueren Namespace. Wenn Sie jedoch frühere Betriebssysteme unterstützen müssen, müssen Sie die ältere API verwenden und den EventLogEntry selbst in XML serialisieren.

4voto

jmservera Punkte 6254

Sie müssen den Namespace System.Diagnostics.Eventing.Reader wie folgt verwenden:

static void Main(string[] args)
{
 EventLogQuery query = new EventLogQuery("System", PathType.LogName);
 EventLogWatcher watcher = new EventLogWatcher(query);
 watcher.EventRecordWritten += new EventHandler<EventRecordWrittenEventArgs>(watcher_EventRecordWritten);
 watcher.Enabled = true;
 Console.ReadLine();
}

static void watcher_EventRecordWritten(object sender, EventRecordWrittenEventArgs e)
{
 Console.WriteLine(e.EventRecord.ToXml());
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X