Можно ли использовать MS Enterprise Library Logging для нескольких приложений?

StackOverflow https://stackoverflow.com/questions/1402379

Вопрос

Мне интересно, возможно ли это - а); б) хорошая практика - регистрировать несколько приложений в одном экземпляре журнала?

У меня есть несколько приложений ASP.NET, и я хотел бы объединить все исключения в централизованном расположении, которое можно запрашивать как часть приложения Enterprise Dashboard. Я использую как блок регистрации EL, так и блог об исключениях EL вместе с слушателем трассировки базы данных. Я хотел бы видеть исключения для всех приложений, зарегистрированных в одной базе данных.

Любые комментарии, рекомендации по передовому опыту или ответы будут очень кстати.

Это было полезно?

Решение

Да, определенно возможно хранить несколько журналов приложений в одном месте, используя EL.

Приложение Enterprise Dashboard, которое позволяет просматривать исключения между приложениями и уровнями и предоставляет отчеты - это отличная причина для централизации ведения журналов. Поэтому я скажу «да» и на вопрос «б».

Возможные проблемы / негативы

Я предполагаю, что вы используете прослушиватель трассировки базы данных, поскольку вы упомянули об этом в своем вопросе. Если большое количество приложений регистрирует большое количество записей журнала в сочетании с пользователями, запрашивающими (потенциально большую) базу данных журналов, существует вероятность снижения производительности (поскольку ведение журнала выполняется синхронно), что может повлиять на производительность вашего приложения.

Другой подход

Чтобы смягчить эту возможность, я бы расследовал использование службы распространителя вести асинхронно. В этой модели все приложения будут регистрироваться в очереди сообщений (используя прослушиватель трассировки MSMQ). Затем отдельный сервис опрашивает очередь и перенаправляет записи журнала в прослушиватель трассировки (в вашем случае прослушиватель трассировки базы данных), который сохраняет сообщения в базе данных панели мониторинга. Эта настройка является более сложной. Но, похоже, это соответствует тому, чего вы пытаетесь достичь, и имеет некоторые другие преимущества, такие как асинхронная обработка и возможность ведения журнала, даже если база данных панели мониторинга не работает (например, для обслуживания).

Другие соображения

Вы также можете подумать о стандартизации некоторых свойств LogEntry для разных приложений. Например, LogEntry на самом деле не имеет " приложения " свойство, чтобы вы могли добавить ExtendedProperty для представления имени приложения. Или вы можете стандартизировать определенный формат для свойства Message, чтобы различная информация могла быть извлечена из сообщения и сохранена в отдельных столбцах базы данных для облегчения поиска и категоризации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top