Я собирался использовать ELMAH для нашей окончательной автоматической регистрации ошибок, но недавно понял, что медицинский Контроль ASP.NET делает ту же работу (возможно). Теперь я хочу знать (нравятся), являются ли они альтернативами друг для друга точно так же, как log4net и entlib?
ELMAH предназначен для простого и понятного отслеживания ошибок. Легко увидеть ошибки с помощью считывания, RSS-каналов и т. Д. Мониторинг состояния - это скорее полноценное инструментальное решение.
Хотите простой ответ?
ELMAH - это очень быстрое подключаемое решение для мониторинга ошибок , у него очень специфическая задача (которая прекрасно справляется) . Мониторинг здоровья - это больше похоже на подход «видеть / контролировать все» и требует гораздо больше работы по настройке. Ах да, нужно что-то изменить? Это открытый исходный код, возьмите его, измените как хотите.
Я не использовал мониторинг работоспособности в ASP.NET, но я использовал ELMAH, и это просто потрясающе. Настройка занимает буквально 2 минуты, после чего вы можете увидеть все ошибки. Также существует множество вариантов отображения ошибок. Попробуйте ELMAH, она вам обязательно понравится.
Мониторинг работоспособности ASP.NET автоматически генерирует сообщения для таких событий, как запуск и завершение работы домена приложения, контрольные сигналы и многие другие сведения о веб-приложении. Платформы ведения журналов не поддерживают такие функции, но вы можете направить события системы мониторинга работоспособности в выбранную вами структуру ведения журналов. Некоторые фреймворки даже поддерживают это из коробки, например CuttingEdge.Logging . Вот пример конфигурации CuttingEdge.Logging , где события работоспособности перенаправляются поставщику журналов:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="logging"
type="CuttingEdge.Logging.LoggingSection, CuttingEdge.Logging" />
</configSections>
<system.web>
<healthMonitoring heartbeatInterval="0" enabled="true">
<providers>
<!-- We're configuring the web event provider here. -->
<add name="LoggingWebEventProvider"
type="CuttingEdge.Logging.Web.LoggingWebEventProvider, CuttingEdge.Logging"
loggingProvider="DebugLogger" />
</providers>
<rules>
<add name="Custom Event Provider"
eventName="All Events"
provider="LoggingWebEventProvider"
profile="Default" />
</rules>
</healthMonitoring>
</system.web>
<logging defaultProvider="DebugLogger">
<providers>
<!-- Configure your favorite provider here. -->
<add name="DebugLogger"
type="CuttingEdge.Logging.DebugLoggingProvider, CuttingEdge.Logging"
description="Debug logging provider"
threshold="Debug" />
</providers>
</logging>
</configuration>