Внесение XML-данных в журнал событий Windows
-
06-07-2019 - |
Вопрос
Как я могу записать XML-данные в журнал событий Windows?
Я заметил, что есть способ вставить XML в журнал событий Windows (а не просто вставить его в описание).В результате вы получаете только ваше сообщение с описанием в General
просмотр в Windows Vista.Вы можете просмотреть свои XML-данные в Details
Вид.
Если вы выберете Friendly
переключатель, он появляется под Event Data
узел.Если вы выберете представление XML, то увидите XML-файл.
Я думал, что массив байтов RawData в EventLog.WriteEntry()
метод позволил бы мне сделать это.Я попытался вставить в него выходные данные XmlWriter.Это помещает данные в журнал событий, но они рассматриваются как двоичные, а не XML.
Решение
Если я не ошибаюсь, для записи xml в журнал событий Crimson / Vista вам нужно будет создать и зарегистрировать манифест, который предоставит вам соответствующие каналы и события.Затем вы должны скомпилировать манифест, используя Компилятор сообщение (mc.exe) в WindowsSDK.
Затем, если вы хотите войти в систему с C #, вам нужно будет создать управляемого поставщика для переноса API ведения журнала событий.Это немного сложнее, потому что вам придется использовать PInvoke, чтобы получить доступ к API.
Есть записи в блоге о том, как выполнить весь этот процесс здесь.
Другие советы
У вас есть образец в Пакет SDK для Windows (версия 6.1) вызывается EventProvider.
Это поставщик C # (для работы нужна Vista и выше), который использует новый API журнала событий (ОН ЖЕ crimson).
В этом примере показано, как добавить пользовательские данные (и многое другое).