Читать подробности журнала событий в 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.

Другие вопросы по тегам