Как сохранить журнал событий в папке - PullRequest
6 голосов
/ 20 января 2011

В проекте ASP NET (C #) я использую пространство имен System.Diagnostics для регистрации ошибок, предупреждений и информации.Используя Windows 7, я вижу, что журнал, который я установил для проекта, находится в разделе «Журналы приложений и служб».Как установить код для создания папки и поместить ее в «Журналы приложений и служб [НЕКОТОРАЯ ПАПКА] \ Журналы приложений и служб», например?

Ответы [ 4 ]

13 голосов
/ 27 февраля 2011

Журналы, хранящиеся в разделе «Журналы приложений и служб», - это журналы пользовательских издателей событий, а не простые журналы событий Windows.

Из этой статьи Обзор технологий для чтения и управления журналами событий :

Журналы приложений и служб - это другая категория журналов событий, чем журналы Windows.Журналы приложений и служб хранят события из одного приложения или компонента, а не события, которые могут повлиять на всю систему.У них есть различные имена, которые определяются поставщиками событий.

Таким образом, вам необходимо создать пользовательский Event Publisher.Вот пара статей с дополнительной информацией:

1 голос
/ 24 февраля 2011

Это новая функция .NET 3.5, доступная в. Microsoft представила новую библиотеку, которая не слишком удобна для пользователя, читайте об этом здесь . В нем, скорее всего, устарело, что эти классы работают только в Windows Vista, однако я рискну предположить, что они доступны в Windows 7 и Server 2008.

Я не нашел там кода, объясняющего, как создать новую иерархию, как вы просили, однако я верю этому в общем направлении.

0 голосов
/ 26 февраля 2011

Рассматривали ли вы использование более общего механизма регистрации, который обеспечивает большую гибкость? Например log4net. Затем вы можете переключаться между файлами журнала и журналом событий, а также другими методами, когда захотите, без изменения строки кода.

0 голосов
/ 20 января 2011

При создании Event Source укажите Log Name. Он станет «папкой» в средстве просмотра событий.

EventLog.CreateEventSource("Source", "Log name");
EventLog.WriteMessage("Source", "Your message");

Имейте в виду, что создание источника события может потребовать дополнительных прав на компьютере. В контексте ASP.Net я предлагаю создать Windows или консольное приложение, которое создает источник событий. Запустите его один раз как администратор.

...