Code-Beispiel

Auslesen von Einträgen aus einem Ereignisprotokoll

Ein Beispiel zum Einsatz der Klasse System.Diagnostics.EventLog aus der .NET-Klassenbibliothek.

Autor: Dr. Holger Schwichtenberg

Beschreibung

Die Klasse EventLog besitzt ein Attribut Entries, das auf eine Collection vom Typ EventLogEntryCollection verweist. Diese Collection enthält einzelne Objekte des Typs EventLogEntry mit jeweils einem Protokolleintrag. Die Einträge sind nach dem Eintragsdatum geordnet, wobei die ältesten Einträge vorne in der Collection stehen.

Beispiel
Das folgende Beispiel listet Einträge aus dem Anwendungsprotokoll (Name: "Application") auf. Dabei wird die Anzahl der auszugebenden Einträge über einen Zähler auf die letzten x Einträge begrenzt.

Zugriff auf Ereignisprotokolle auf anderen Computern
Die Klasse EventLog unterstützt auch den Fernzugriff. Geben Sie dazu bei der Instanziierung neben dem Protokollnamen als zweiten Parameter einen Computernamen an.
EventLog("logname","computername")

Programmcodebeispiele Visual Basic .NET (VB.NET)

' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Auslesen von Einträgen aus einem
' Ereignisprotokoll
' (C) Holger@Schwichtenberg.de
' ============================
Public Sub EventLog_Read()
' Name des Ereignisprotokolls
Const logname As String = "Application"
' Anzahl der auszugebenden Einträge
Const Anzahl As Long = 10

Dim log As EventLog
Dim eintrag As EventLogEntry
Dim Count As Long = 0

' -- Zugriff auf das Ereignisprotokoll
log = New EventLog(logname)

say("--- Letzte " & Anzahl & _
" Einträge von " & log.entries.Count & _
" Einträgen aus dem Protokoll " & _
log.Log & " auf dem Computer " & _
log.machinename)

' --- Schleife über alle Einträge
For Each eintrag In log.Entries
count += 1
If Count > log.Entries.Count - Anzahl Then
say(eintrag.EntryType & ":" & _
eintrag.EventID & ":" & _
eintrag.Category & ":" & _
eintrag.Message & ":" & _
eintrag.Source & ":" & _
eintrag.TimeGenerated & ":" & _
eintrag.TimeWritten & ":" & _
eintrag.UserName & ":")
End If
Next

End Sub

Programmcodebeispiele CSharp (C#)

using System;
using System.IO;
using System.Threading;
using System.Diagnostics;
using System.Windows.Forms;

using FCL_Buch;

namespace FCLBuch._SystemDiagnostics {

public class Samples_EventLog {
public void EventLog_Read() {

// Auslesen von Einträgen aus einem Ereignisprotokoll

// Name des Ereignisprotokolls
string logname = "Application";

// Anzahl der auszugebenden Einträge
long anzahl = 10;

long count = 0;

// -- Zugriff auf das Ereignisprotokoll
EventLog log = new EventLog( logname );

FclOutput.PrintOut("Letzte " + anzahl.ToString() + " Einträge von " + log.Entries.Count +
" Einträgen aus dem Protokoll " + log.Log + " auf dem Computer " + log.MachineName);

// Schleife über alle Einträge
foreach ( EventLogEntry eintrag in log.Entries ) {
count += 1;
if ( count > log.Entries.Count - anzahl ) {
FclOutput.PrintOut(eintrag.EntryType + ":" +
eintrag.EventID + ":" +
eintrag.Category + ":" +
eintrag.Message + ":" +
eintrag.Source + ":" +
eintrag.TimeGenerated + ":" +
eintrag.TimeWritten + ":" +
eintrag.UserName + ":" );
}
}
}
}
}

 

Querverweise

 Liste aller Codebeispiele  Definition '.NET Framework Class Library'  Verfügbarkeit der Klasse 'System.Diagnostics.EventLog'  Übersicht über den FCL-Namensraum 'System.Diagnostics'  .NET & Visual Studio Community Portal

Buchtipp

Buchcover PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch (5. Auflage Oktober 2022 (9. Auflage Gesamtreihe)) PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
Autor(en): Dr. Holger Schwichtenberg
Erschienen 2022
Umfang: 1426 Seiten
ISBN: 3446472967

Beratung & Support

Schulungen zu diesem Thema

  Anfrage für eine individuelle Schulung zum Thema VISUAL BASIC C#   Gesamter Schulungsthemenkatalog

Bücher zu diesem Thema

  Alle unsere aktuellen Fachbücher   E-Book-Abo für ab 99 Euro im Jahr