Eventlog auslesen

11/09/2007 - 09:53 von Thorsten Braun | Report spam
Hallo NG.
Ich habe folgendes Problem: Es soll das Ereignisprotokoll von Windows
ausgelesen. Bestimmte ID's (sind in einer config.dat hinterlegt und werden
in eine Array geladen) sollen nicht angezeigt werden. Die komplette Ausgabe
soll in ein Textfile geschrieben werden. Dieses Textfile wird spàter durch
den IBM Tivoli Universal Agent überwacht. Wo ist mein Denkfehler? Kann mir
jemand weiterhelfen?

Viele Grüße
Thorsten

Hier ein kleiner Ausschnitt:
For Each eintrag In log.Entries

' InstancID umwandeln

instanzID = eintrag.InstanceId And &HFFFFI

' -

Count += 1

If Count > log.Entries.Count - Anzahl Then

Dim flag As Boolean = True

For i = 0 To arrayLaenge - 1

If instanzID = testArray(i) Then 'Wenn ID gleich Array setze flag auf false

flag = False

Else

flag = True

End If

If flag = True Then

If eintrag.EntryType = EventLogEntryType.Error Then ' gib erst aus wenn ID
und Array nicht gleich sind

SWriter.WriteLine(eintrag.EntryType.ToString & "|" & _

eintrag.Source & "|" & instanzID & "|" & _

eintrag.TimeGenerated.Date & "|" & eintrag.TimeGenerated.Hour & _

":" & eintrag.TimeGenerated.Minute)

End If

End If

Next

End If

Next
 

Lesen sie die antworten

#1 Stefan Simon
11/09/2007 - 10:36 | Warnen spam
"Thorsten Braun" schrieb im Newsbeitrag
news:fc5hia$66r$00$

Ich habe folgendes Problem: Es soll das Ereignisprotokoll von Windows
ausgelesen.



OMG nein! Das ist allerdings ein großes Problem ^^

Hier ein kleiner Ausschnitt:
For Each eintrag In log.Entries
' InstancID umwandeln
instanzID = eintrag.InstanceId And &HFFFFI
' -
Count += 1
If Count > log.Entries.Count - Anzahl Then



Wofür brauchst du Count und was ist Anzahl?

Dim flag As Boolean = True
For i = 0 To arrayLaenge - 1
If instanzID = testArray(i) Then 'Wenn ID gleich Array setze flag auf
false
flag = False
Else
flag = True
End If



Du solltest hier NEXTen, da du sonst oft den gleichen Eintrag in deine
Textdatei schreibst.

If flag = True Then
If eintrag.EntryType = EventLogEntryType.Error Then ' gib erst aus wenn ID



Das sieht sehr umstàndlich aus. Tuts etwas in dieser Form nicht auch?

For Each eintrag In log.Entries
if (eintrag.EntryType = EventLogEntryType.Error) andalso _
(Array.Indexof(testarray,instanzID)<0)
' Eintrag speichern
end if
next

oder so àhnlich
Stefan

Ähnliche fragen