Теперь, когда на картинке изображено ядро .net, изменился ли сценарий? (elmah не поддерживает ядро .net по состоянию на январь 2018 г.).
Chaitanya Gadkari
Ответы:
92
ELMAH служит для отслеживания ошибок и исключений для ваших веб-приложений и позволяет вам легко регистрировать или просматривать эти исключения с помощью множества различных механизмов (SQL, RSS, Twitter, файлы, электронная почта и т. Д.). Если у вас нет встроенной обработки исключений, ELMAH, скорее всего, даст вам то, что вы ищете с точки зрения обработки исключений в среде веб-приложения.
Log4net также можно использовать для регистрации исключений, однако вам может потребоваться развернуть собственные обработчики для подключения к вашему веб-приложению. Log4net будет сиять над ELMAH, если вам нужно делать другие типы регистрации информации, поскольку log4net - это среда ведения журнала общего назначения. Log4net также можно использовать практически в любом приложении .NET.
Вы можете получить лучшее из обоих миров, используя этот ELMAH Appender для log4net. Просто зарегистрируйте то, что вам нравится (отладка, информация, предупреждение, ошибка) с помощью log4net, но сохраните это в ELMAH nuget.org/packages/elmahappender_log4net_1.2.10
Sturla
111
Log4Net - это универсальная среда ведения журналов с API, предназначенная для использования в вашем приложении (веб, консоль, dll и т. Д.).
logger.Debug("Some low level debug message...");
logger.Info("Some basic info");
logger.Warn("Some business logic problem, but not critical");
logger.Error("An unexpected error");
ELMAH - ненавязчивый плагин IIS, специально предназначенный для регистрации исключений в веб-приложении. Вы не увидите ссылки на ELMAH в своем приложении, у него нет API, с которым вы взаимодействуете. Он использует точки расширения IIS модуля и обработчика для фиксации поведения. Кроме того, у него есть веб-интерфейс для просмотра ошибок, возникших в вашем веб-приложении. Log4Net не имеет внешнего интерфейса, только множество приемников журнала (Appenders), которые могут отправлять сообщения журнала в такие вещи, как файлы журнала, сервер системного журнала, база данных и т. Д.
Одно исправление: у Elmah есть API, с которым разработчик может взаимодействовать. Например, передача сигналов осуществляется через Elmah Api.
Эд ДеГан
8
Еще одна поправка? ELMAH - это .NET HttpModule / HttpHandler. Это НЕ плагин IIS. ARR - это плагин. Не ЭЛЬМА.
Максим Руиллер
Как вы ответите на комментарии?
Питер Мортенсен
36
Ключевое отличие состоит в том, что ELMAH регистрирует необработанные исключения приложений; log4net записывает все, что вы ему указываете. Вы можете настроить log4net для регистрации необработанных исключений, но ELMAH сразу же собирает массу полезной информации.
При правильной настройке ELMAH сразу же собирает массу полезной информации. за то же время вы можете сделать то же самое с log4net с большим контролем.
DarthVader 01
DarthVader - у вас есть образец конфигурации log4net, который делает то же самое?
JasonD
5
ELMAH собирает массу полезной информации прямо из коробки, БЕЗ конфигурации. С дополнительной конфигурацией он будет обрабатывать как необработанные исключения, так и обработанные исключения.
Trevor de Koekkoek
5
ELMAH работает, создавая HTTP-модуль, который перехватывает события ошибок, а затем ведет журнал. Этому можно легко помешать и сломать плохой дизайн. Log4Net может потребовать дополнительной работы заранее, но если вы используете структуру АОП и применяете ее в своем классе или даже сборке, вы можете добиться гораздо лучшего ведения журнала исключений с очень небольшим кодом и усилиями.
ELMAH работает только в том случае, если у него есть доступ к HttpContext, что может быть трудно достичь в службах WCF. Так что вы все равно будете использовать какой-нибудь другой регистратор в WCF. Почему бы просто не использовать одно более универсальное решение.
ELMAH специально используется для веб-приложений, тогда как log4net используется как в веб-приложениях, так и в приложениях Windows. ELMAH имеет гораздо больше преимуществ, чем log4net в веб-приложении.
Что это за преимущества? Я скоро займусь ASP.NET, поэтому мне хотелось бы узнать ваше образованное мнение. Я все еще новичок в .NET, поэтому мне сложнее интерпретировать то, что они говорят на своих сайтах.
IAdapter
Вы можете просматривать отчеты даже без написания кода. См. Особенности elmah здесь code.google.com/p/elmah
Adeel
Elmah очень ограничен, и единственное «преимущество» - это отчеты, но оно ограничено веб-приложениями, имеющими доступ к HttpContext. Вы можете использовать данные журналов других регистраторов для многих других источников, о которых можно сообщать.
Дастин Дэвис
0
ELMAH очень мощный инструмент, но в то же время очень специфичен в том, что он делает. Он выполняет большую часть работы за вас, хотя я считаю, что Log4Net требует , чтобы вы выполняли обработку ошибок и ведение журнала.
Ответы:
ELMAH служит для отслеживания ошибок и исключений для ваших веб-приложений и позволяет вам легко регистрировать или просматривать эти исключения с помощью множества различных механизмов (SQL, RSS, Twitter, файлы, электронная почта и т. Д.). Если у вас нет встроенной обработки исключений, ELMAH, скорее всего, даст вам то, что вы ищете с точки зрения обработки исключений в среде веб-приложения.
Log4net также можно использовать для регистрации исключений, однако вам может потребоваться развернуть собственные обработчики для подключения к вашему веб-приложению. Log4net будет сиять над ELMAH, если вам нужно делать другие типы регистрации информации, поскольку log4net - это среда ведения журнала общего назначения. Log4net также можно использовать практически в любом приложении .NET.
источник
Log4Net - это универсальная среда ведения журналов с API, предназначенная для использования в вашем приложении (веб, консоль, dll и т. Д.).
ELMAH - ненавязчивый плагин IIS, специально предназначенный для регистрации исключений в веб-приложении. Вы не увидите ссылки на ELMAH в своем приложении, у него нет API, с которым вы взаимодействуете. Он использует точки расширения IIS модуля и обработчика для фиксации поведения. Кроме того, у него есть веб-интерфейс для просмотра ошибок, возникших в вашем веб-приложении. Log4Net не имеет внешнего интерфейса, только множество приемников журнала (Appenders), которые могут отправлять сообщения журнала в такие вещи, как файлы журнала, сервер системного журнала, база данных и т. Д.
источник
Ключевое отличие состоит в том, что ELMAH регистрирует необработанные исключения приложений; log4net записывает все, что вы ему указываете. Вы можете настроить log4net для регистрации необработанных исключений, но ELMAH сразу же собирает массу полезной информации.
источник
ELMAH работает, создавая HTTP-модуль, который перехватывает события ошибок, а затем ведет журнал. Этому можно легко помешать и сломать плохой дизайн. Log4Net может потребовать дополнительной работы заранее, но если вы используете структуру АОП и применяете ее в своем классе или даже сборке, вы можете добиться гораздо лучшего ведения журнала исключений с очень небольшим кодом и усилиями.
ELMAH работает только в том случае, если у него есть доступ к HttpContext, что может быть трудно достичь в службах WCF. Так что вы все равно будете использовать какой-нибудь другой регистратор в WCF. Почему бы просто не использовать одно более универсальное решение.
источник
ЭЛЬМА:
Log4net:
веб приложение
Приложение Windows
Дополнительные ссылки: ref_1 ref_2
источник
ELMAH специально используется для веб-приложений, тогда как log4net используется как в веб-приложениях, так и в приложениях Windows. ELMAH имеет гораздо больше преимуществ, чем log4net в веб-приложении.
источник
ELMAH очень мощный инструмент, но в то же время очень специфичен в том, что он делает. Он выполняет большую часть работы за вас, хотя я считаю, что Log4Net требует , чтобы вы выполняли обработку ошибок и ведение журнала.
источник