Net, протоколювання подій
Щоб забезпечити запис повідомлень трасування в журнал подій, знадобиться настроїти клас EventLogTraceListener. Клас EventLogTraceListener має асоційований з ним об'єкт EventLog для запису елементів журналу подій. Для запису і читання журналів подій можна також безпосередньо використовувати клас EventLog.
Архітектура протоколювання подій
Інформація журналу подій зберігається в декількох журнальних файлах. Найбільш важливі з них - журнали додатків, безпеки і системи. В галузі HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Eventlog системного реєстру для служби журналу подій передбачено кілька конфігураційних елементів, що вказують на певні файли. Файл журналу системи використовується системою і драйверами пристроїв.

У журналі подій доступна наступна інформація по кожній події:
Тип. Information (Відомості), Warning (Попередження) або Error (Помилка). Типом Information позначають нечасто успішну операцію; Warning - проблему, яка не є невідкладною; Error - серйозну проблему. Є й додаткові типи FailureAudit і SuccessAudit, однак вони використовуються тільки для журналу безпеки.
Дата і час показують день і годину виникнення події.
Джерело - назва програмного додатку, який веде протокол подія. Джерело для журналу додатки конфигурируется в ключі реєстру HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Eventlog \ Application \ [ІмяПріложенія]. Усередині цього ключа значення EventMessageFile вказує на DLL-бібліотеку ресурсів, що містить повідомлення про помилки.
Ідентифікатор події специфицирует певне повідомлення про подію.
Класи протоколювання подій
Для запису журналів подій існують два різних API-інтерфейсу Windows. Для одного з них, який доступний, починаючи з Windows Vista, передбачені класи-оболонки в просторі імен System.Diagnostics.Eventing, а для іншого класи-оболонки знаходяться в просторі імен System.Diagnostics.
Простір імен System. Diagnostics містить класи для протоколювання подій, перераховані нижче:
Клас EventLogEntry представляє окремий елемент журналу подій. За допомогою EventLogEntryCollection можна виконувати ітерації за елементами EventLogEntry.
Клас EventLogInstaller - це установник компонента EventLog. Для створення джерела подій він звертається до EventLog.CreateEventSource ().
За допомогою EventLogTraceListener трасування можуть записуватися в журнал подій. Цей клас є реалізацією абстрактного класу TraceListener.
Ядром протоколювання подій є клас EventLog. Члени цього клас описані в таблиці:
У властивості Log вказується журнал для читання або запису.
LogDisplayName - властивість тільки для читання, яке повертає коротке ім'я журналу.
За допомогою MachineName вказується система, на якій повинно проводитися читання або запис елементів журналу.
Властивість Source специфицирует джерело елементів подій, що підлягають записи.
CreateEventSource () створює нове джерело подій і новий файл журналу, якщо він зазначений при виклику цього методу.
Метод викликається DeleteEventSource (), коли необхідно позбутися від джерела події.
За допомогою цього методу можна перевірити, чи існує джерело подій перед його створенням.
Запис елементів журналу подій. Метод WriteEntry () простіше, так як йому необхідно лише передати рядок.
WriteEvent () більш гнучкий, оскільки можна використовувати файли повідомлень, що не залежать від програми та підтримують локалізацію.
Метод Clear () видаляє всі елементи з журналу подій.
Метод Delete () видаляє цілком журнал подій.
Перед записом подій потрібно створити джерело подій. Для цього можна використовувати метод CreateEventSource () класу EventLog або клас EventLoglnstaller. Оскільки при створенні джерела подій потрібні адміністративні привілеї, програма установки є більш підходящим вибором.
У наступному прикладі здійснюється перевірка наявності джерела подій на ім'я EventLogDemoApp. Якщо він не існує, створюється об'єкт типу EventSourceCreationData, який визначає ім'я джерела EventLogDemoApp і ім'я журналу ProCSharpLog. Всі події даного джерела пишуться в журнал подій ProCSharpLog. За замовчуванням це журнал додатків:
Установка імені Application для журналу подій призводить до запису елементів подій в журнал додатків. Можна також створити власний журнал, вказавши ім'я журналу подій. Файли журналу розташовуються в каталозі
За допомогою EventSourceCreationData допускається також задавати ще кілька характеристик для журналу подій.