Читать подробности журнала событий в vb.net
Я пишу приложение в данный момент, часть которого будет собирать некоторую информацию из журнала событий Windows, в основном это работает....
Dim strValue As String
Dim objLogs() As EventLog
Dim Logname As String = "Application"
Dim objEntry As EventLogEntry
Dim objLogEntry As EventLogEntry
Dim objLog As EventLog
objLogs = EventLog.GetEventLogs()
For Each objLog In objLogs
If objLog.LogDisplayName = Logname Then
For Each objLogEntry In objLog.Entries
WriteLine("EventID")
WriteLine("Machinename")
WriteLine("message")
Next
Exit For
End If
Next
Это с радостью запишет EventID, имя машины и сообщение о событии. вкладка сведений в средстве просмотра событий
Что я не могу понять, так это как вывести вкладку "детали" в идеале просмотра событий в строки или аналогичные.
MSDN не помогает, может кто-нибудь указать мне правильное направление, пожалуйста?
Заранее спасибо,
1 ответ
Похоже, что детали в EventLogEntry представлены свойством Data, которое хранится в виде байтового массива. Вы бы вас бы потом преобразовали во что-то читабельное. Но формат данных, кажется, зависит от версии ОС Windows.
Вот альтернативный способ сделать это. Код скопирован из ответа на следующий вопрос и преобразован в VB.Net.
Сериализация экземпляра.NET EventLogEntry в XML
Imports System.Diagnostics.Eventing.Reader
Sub Main()
Dim query As New EventLogQuery("System", PathType.LogName)
Dim watcher As New EventLogWatcher(query)
AddHandler watcher.EventRecordWritten, AddressOf watcher_EventRecordWritten
watcher.Enabled = True
Console.ReadLine()
End Sub
Public Sub watcher_EventRecordWritten(sender As Object, e As EventRecordWrittenEventArgs)
Console.WriteLine(e.EventRecord.ToXml())
End Sub
Поместите в основной модуль простое консольное приложение и часы для системных событий. Запись данных события, преобразованных в XML, в виде одной длинной строки.
Работал с использованием фреймворка 4.5 на машине с Windows 7.