Я собирался использовать ELMAH для нашей окончательной автоматической регистрации ошибок, но недавно понял, что ASP.NET Health Monitoring выполняет ту же работу (возможно). Теперь я хочу знать (пожалуйста), являются ли они альтернативами друг другу, как log4net и entlib?
Являются ли ASP.NET Health Monitoring и ELMAH альтернативой друг другу?
Ответы (3)
ELMAH предназначен для мониторинга ошибок, в чистом виде. Легко увидеть ошибки с помощью показаний, RSS-каналов и т. Д. Мониторинг работоспособности — это скорее полное инструментальное решение.
Хотите простой ответ?
ELMAH — это очень быстро подключаемое решение для мониторинга ошибок, у него очень специфическая задача (то есть он прекрасно справляется). Мониторинг работоспособности — это скорее подход «видеть / контролировать все» и включает в себя гораздо больше работы по настройке. Ах да, нужно внести изменения? Это открытый исходный код, берите его, меняйте, как хотите.
Я не использовал Health Monitoring в ASP.NET, но я использовал ELMAH, и это просто потрясающе. Настройка занимает всего 2 минуты, после чего вы можете увидеть все ошибки. Есть также так много вариантов для отображения ошибок. Попробуйте ELMAH, вам понравится.
Мониторинг работоспособности ASP.NET будет автоматически генерировать сообщения о таких событиях, как запуск и завершение работы домена приложения, контрольные сигналы и многие другие сведения о веб-приложении. Платформы ведения журналов не поддерживают такие функции, но вы можете перенаправить системные события Health Monitoring в выбранную платформу ведения журналов. Некоторые платформы даже поддерживают это по умолчанию, например 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>