Организация журналов событий в папки - PullRequest
5 голосов
/ 17 июня 2011

Я хочу создать несколько служб, и я хочу, чтобы они регистрировали каждую из них в одной записи журнала в одной и той же папке / папке, которую я указал, поэтому при открытии средства просмотра событий Windows я могу видеть их все в одной папке.Например, service1 будет входить в service1_log, service2 будет входить в service2_log, а service1_log и service2_log будут находиться в одной папке с именем Myservices.Я не нашел ничего в Windows Event Log API или любом другом API, который бы подходил для этой проблемы. Я вижу, что в средстве просмотра событий Windows есть папки, но я могу создавать там только логи в корне иерархии логов.

Заранее спасибо Томас

Ответы [ 2 ]

4 голосов
/ 17 июня 2011

Журнал событий Windows не входит в каталоги. Однако журнал событий делится на несколько журналов ( Приложение , Система , Безопасность и т. Д.), Которые отображаются в виде папок в средстве просмотра событий. Вы можете создать свой собственный журнал, который будет отображаться в виде отдельной папки в Журналах приложений и служб (при условии Windows Vista или более поздней версии), вызвав EventLog.CreateEventSource.

Однако я не буду рекомендовать вам создавать свой собственный журнал. Вместо этого вы можете разрешить вашим службам регистрироваться в журнале Application . Позволяя каждой службе использовать отдельный источник событий, вы можете легко фильтровать журнал Приложение , чтобы отображать только только интересные сообщения журнала. Опять же, предполагая Windows Vista или более позднюю версию, вы можете создать собственное представление под узлом Custom Views и отфильтровать его по источнику. В этой папке будут отображаться только сообщения журнала от ваших служб.


Перенесемся на пять лет назад. Теперь довольно просто создать собственный журнал, который можно увидеть в Application and Services Logs, с помощью класса EventSource, который позволяет создавать события для Трассировка событий для Windows (ETW) . ETW легко настраивается, имеет очень хорошую производительность, но также может быть немного сложным в использовании. Размер сообщения ограничен, установка нового манифеста требует административных прав, в то время как такие каналы, как Диагностика собирают данные, которые вы не можете просматривать в журнале и т. Д. Но в целом ETW является хорошей альтернативой регистрации в Приложение Журнал событий.

1 голос
/ 13 сентября 2013

Короче говоря, это нелегко сделать с помощью .NET 4 Framework. Похоже, что .NET 4.5 предлагает лучшую поддержку для этого, но это не так просто. Вы можете поместить их в папки для каждого приложения, но поместить их в общую папку будет намного сложнее.

См. Следующий ответ в другой теме: https://stackoverflow.com/a/10528920/848419

...