Какая утилита журнала хороша для .NET-приложения на С# (ASP.NET, WinForms)?

Я пытаюсь оценить некоторые из лучших утилит журнала, доступных для платформы .NET, таких как Microsoft Enterprise Library, Log4Net, elmah.

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

Спасибо и с уважением, Раджев Ранджан Лалл

Ответ 1

В общем, хороший Log4net.

PROS: Log4Net поддерживает множество источников вывода.
CONS: Иногда может замедлить ваше приложение.

Для приложения ASP.NET это лучший ELMAH.

PROS: Вам не нужно немного менять код приложения, чтобы использовать Elmah. Вы должны просто включить в свое приложение.
CONS: Не знаю, что я знаю.

Ответ 2

Я также слышал хорошие вещи о NLog, хотя я еще не тестировал. Говорят, что API похож на тот, который предоставляется log4net.

Кроме того, просматривая SO, у вас есть много вопросов, связанных с этой проблемой:

https://stackoverflow.com/questions/98080/what-is-the-best-logging-solution-for-a-c-net-3-5-project

.NET logging framework

Ошибка регистрации на С#

Надеюсь, что это поможет.

Ответ 4

log4net для Windows Forms, log4net и ELMAH для ASP.NET.

ELMAH и log4net имеют разные цели. ELMAH фиксирует данные о необработанных исключениях, тогда как log4net предоставляет структуру ведения журнала на настраиваемых уровнях (INFO, WARN, DEBUG, FATAL). log4net требует, чтобы вы активно записывали записи в свой код; ELMAH работает автоматически после правильной настройки.

Ответ 5

elmah - лучший. скалы elmah!

Ответ 6

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

У меня не было возможности использовать Log4Net или Elmah.

Ответ 7

Я использовал свой собственный пользовательский, entlib, log4net, а затем Elmah

Для отчета об ошибке asp.net Elmah - выше всех остальных. Однако несколько вещей, которые я хотел бы улучшить, - это фильтрация и, возможно, ежедневный дайджест электронной почты, а не один адрес электронной почты за ошибку.

Если вы хотите вводить протоколирование, предупреждения, отладки, трассировки и т.д., тогда я бы выбрал log4net.

Однако это зависит от типа ведения журнала, который вы после...

Ответ 8

Отметьте Gibraltar для отличного ведения журнала и многое другое.

У него есть собственный API ведения журнала, и у нас также есть адаптеры для log4net, NLog и рамки ведения журнала Object Guy (PostSharp тоже!). Помимо регистрации, Гибралтар также собирает ошибки, такие как ELMAH, а также собирает дополнительные показатели, полезные для поддержки клиентов или CEIP.

Ответ 9

Еще не видел этого, но я обнаружил, что встроенный System.Diagnostics TraceSource и TraceListeners очень эффективны для ведения журнала. Мы создали ряд высокопроизводительных пользовательских TraceListeners для разных источников данных, в которых мы сохраняем журналы.

Мы постоянно обновляем разные слушатели в конфигурационном файле. Мы используем System.Diagnostics.CorrelationManager, чтобы отслеживать цепочку выполнения через множество серверов, процессов и потоков через журналы.

В целом у нас есть сложное решение для ведения журналов, построенное на основе того, что было с фреймворком, и я очень доволен им.