Какая утилита журнала хороша для .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
Ошибка регистрации на С#
Надеюсь, что это поможет.
Ответ 3
Взгляните на мою систему ведения журнала. Легко использовать. Простота настройки. Легко расширяется.
И послушайте, что этот парень говорит.
Ответ 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, чтобы отслеживать цепочку выполнения через множество серверов, процессов и потоков через журналы.
В целом у нас есть сложное решение для ведения журналов, построенное на основе того, что было с фреймворком, и я очень доволен им.
Ответ 10
Я использовал Logstash (https://www.elastic.co/products/logstash), и это довольно хорошо и с открытым исходным кодом.