База данных журнала ошибок - для многих приложений - PullRequest
5 голосов
/ 04 января 2010

У меня есть куча существующих клиент-серверных приложений, которые в настоящее время находятся в процессе разработки. Время от времени клиент захочет добавить какой-либо веб-интерфейс для доступа к части своих данных. Обычно это обычай, хотя некоторые являются «общими»; но у каждого есть свой «экземпляр» в своей виртуальной машине.

Мне нужна централизованная область для регистрации и регистрации любых ошибок, которые возникают на любой из этих виртуальных машин.

Я согласен создать новую базу данных и настроить службу WCF, чтобы каждый из этих веб-приложений мог создать запись в моей централизованной базе данных, а также в локальном EventLog.

Это плохой дизайн?

обновление

Веб-приложения на 2003 / IIS6 и 2008 / IIS7, встроенные в ASP.NET. Многие экземпляры находятся на паре веб-серверов, но многие будут развернуты на отдельных виртуальных машинах.

Ответы [ 3 ]

4 голосов
/ 04 января 2010

Именно так мы и реализовали.

У нас есть 3 таблицы в базе данных:

Event Types
------------ 
EventType int 
EventDescription varchar(50)


MonitoredSystems
---------------
SystemID int
SystemName varchar(50)
SystemDescription text


Events
-------
RecordID bigint
EventTime datetime
SystemID int FK
EventText text
EventType int FK
Acknowledged bit

Мы также создали сайт, на котором можно было посмотреть события. Поле «Подтвержденные» позволяет нам настраивать представление под названием «Неподтвержденные критические проблемы», чтобы мы могли быстро видеть любые новые проблемы и распознавать их по мере их чтения.

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

Так что я думаю, что ваша идея в порядке. Если вы создаете его самостоятельно, вы можете настроить его так, как вам хочется. Тем не менее, я бы рекомендовал, по крайней мере, изучить такие инструменты, как Log4net и т. Д.

3 голосов
/ 04 января 2010

Вам следует взглянуть на ELMAH (модули и обработчики ошибок) (http://code.google.com/p/elmah/) с комбинацией Orbit One's Exception Reporter (http://aspexceptionreporter.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35343)), который в сочетании может дать вам широкий охват для ошибок предприятия отчетность в централизованном месте.

0 голосов
/ 06 октября 2011

Если вы часто регистрируетесь (отладка / информация / предупреждение), убедитесь, что RPC-вызовы выполняются асинхронно.

Я бы порекомендовал более гибкую структуру данных;

Events
-------
RecordID bigint
EventTime datetime
EventLevel text 
SystemID text
EventText text
EventType text
Acknowledged bit

EventProperties
-------
RecordID bigint
key text
value text

EventProperties позволяет приложению регистрации регистрировать любую информацию, которая может быть полезна, без необходимости заранее определять такие свойства. Обратите внимание, что нет никаких ограничений на SystemID, что позволяет добавлять системы без конфигурации.

...