У кого-нибудь есть опыт для обоих? Как они складываются друг против друга?
Мы планируем использовать один из них для входа в корпоративное приложение.
Литература:
EDIT: у нас нет существующих зависимостей ни для nlog, ни для log4net.
У кого-нибудь есть опыт для обоих? Как они складываются друг против друга?
Мы планируем использовать один из них для входа в корпоративное приложение.
Литература:
EDIT: у нас нет существующих зависимостей ни для nlog, ни для log4net.
Мне недавно было поручено "прототип некоторого loggin" для предстоящего проекта. У меня не было никакого опыта работы с журналами. Я исследовал, прошел через учебные пособия, сделал игрушечные приложения и т.д. В Log4Net, NLog и корпоративной библиотеке в течение нескольких дней. Вернулись 3-4 недели спустя и объединили их в сплоченную демонстрацию. Надеемся, что некоторые из них вам полезны.
Моя рекомендация для нашего проекта такова:
Это основано на этих выводах (мнения!):
Так что, очевидно, мне нравится NLog. Недостаточно использовать его, несмотря на наличие другого решения.
Ключевое соображение, которое не обсуждалось очень часто, - это поддержка и обновления.
Log4Net не обновлялся, так как версия 1.2.10 была опубликована 19 апреля 2006 г..
Напротив, NLog активно поддерживается с 2006 года, вскоре выпустит NLog 2.0, поддерживающий множество платформ, которые не существовали при последнем обновлении log4net, например:
Недавно у меня был опыт работы с обеими структурами, я думал, что могу поделиться своими взглядами на каждую структуру.
Мне было предложено оценить рамки ведения журнала для существующего веб-приложения, я сузил свой выбор до NLog (v2.0) и log4net (v1.2.11) после прохождения различных онлайн-форумов. Вот мои выводы:
Настройка/запуск с помощью NLog мертв легко. Вы проходите учебник по началу работы на своем веб-сайте, и все готово. Вы понимаете, как обстоят дела с nlog. Файл Config настолько интуитивно понятен, что любой может понять конфигурацию. Например: если вы хотите включить внутреннее ведение журнала, вы устанавливаете флаг в заголовке файла конфигурации Nlog node, в котором вы ожидаете, что это будет. В log4net вы устанавливаете различные флаги в разделе websconfig appSettings.
В log4net внутреннее ведение журнала не выводит временную метку, которая раздражает. В Nlog вы получаете хороший журнал с отметками времени. Я нашел это очень полезным в моих оценках.
Фильтры в log4net - лучше проверить мой вопрос - log4net filter - как писать И фильтровать, чтобы игнорировать сообщения журнала, и если вы найдете ответ/решение для этого, пожалуйста, дайте мне знать. Насколько я понимаю, для этого вопроса есть обходной путь, так как вы можете написать свой собственный фильтр. Но что-то, что нелегко доступно в log4net.
Производительность. Я зарегистрировал около 3000 сообщений журнала в базе данных с помощью хранимой процедуры. Я использовал простой для цикла (int я = 0; я < 3000; я ++... для регистрации того же сообщения 3000 раз. Для записей: log4net AdoAppender занял почти вдвое больше времени, чем NLog.
Log4net не поддерживает асинхронный appender.
Было достаточно сравнения для меня, чтобы выбрать NLog в качестве рамки ведения журнала.:)
Для тех, кто поздно доходит до этой темы, вы можете взглянуть на библиотеку базового класса .Net(BCL). Многие люди пропустили изменения между .Net 1.1 и .Net 2.0, когда был введен класс TraceSource (около 2005 г.).
Использование TraceSource аналогично другим фреймворкам регистрации, с гранулированным управлением протоколированием, настройкой в app.config/web.config и программным доступом - без накладных расходов на корпоративный блок приложений.
Существует также ряд сравнений, плавающих вокруг: "log4net vs TraceSource"
Для нас ключевое различие заключается в общем...
Взгляните на Logger.IsDebugEnabled
в NLog по сравнению с Log4Net, из наших тестов NLog имеет меньше накладных расходов и то, что мы после (материал с низкой задержкой).
Cheers, Флориан
Сначала просмотрите оставшуюся часть вашего стека.
Если вы используете NHibernate, он использует Log4Net напрямую. Другие фреймворки могут иметь другие конкретные регистраторы, в которых они нуждаются.
Кроме этого: обе работают нормально.
Я сам зашел на Log4Net. Это может быть болью для настройки, и если она не настроена правильно, это боль, чтобы понять, что пошло не так. Но вы можете заставить его делать почти все, что вы захотите от регистратора.
Если у вас нет постоянной проблемы с Log4Net, вот статья, которую я написал о том, как начать с нее: http://elegantcode.com/2007/12/07/getting-started-with-log4net/
Ну.. Я использовал библиотеку Enterprise для задач регистрации базы данных и теперь я переключился на NLog из-за узкого места производительности.
информация о сравнении:
http://pauliusraila.blogspot.com/2010/10/solving-database-logging-bottlenecks.html
Я повторяю выше и предпочитаю nLog. Entlib бесполезно раздувается.
Re: Log4net Одна вещь, которая ВСЕГДА получает меня с log4net, забывает добавить следующее в global.asax для запуска компонента:
log4net.Config.XmlConfigurator.Configure();
Если вы перейдете здесь, вы можете найти исчерпывающую матрицу, содержащую как библиотеки NLog, так и Log4Net, а также Enterprise Lib и другие продукты.
Кто-то может утверждать, что матрица выполнена таким образом, чтобы подчеркнуть особенности единственной коммерческой библиотеки, присутствующей в матрице. Я думаю, что это правда, но это было полезно в любом случае для моего выбора против NLog.
Привет
Как я заметил, log4net блокирует свои выходные файлы все время приложения, поэтому вы не можете их удалить. В противном случае они похожи.
Поэтому я предпочитаю NLog.
Бесстыдный плагин для проекта с открытым исходным кодом, который я запускаю, но учитывая оживленную дискуссию о том, какая платформа ведения журнала .NET более активна, я думал, что разместил бы обязательную ссылку на Serilog.
Чтобы использовать в приложении, Serilog похож на (и сильно втягивается) log4net. Однако, в отличие от других параметров ведения журнала .NET, Serilog собирается сохранить структуру событий журнала для автономного анализа. Когда вы пишете:
Log.Information("The answer is {Answer}", 42);
Большинство библиотек журналов сразу же передают сообщение в строку. Serilog тоже может это сделать, но он сохраняет свойство { Answer: 42 }
, чтобы позже, используя один из нескольких хранилищ данных NoSQL, вы можете правильно запросить события на основе значения Answer
.
Мы близки к 1.0 и поддерживаем все современные платформы (.NET 4.5, Windows Store и Windows Phone 8).
Я второй NLog тоже, потому что он работает и с неуправляемым кодом. Я полагаю, что можно использовать log4net и log4cxx вместе, но NLog обрабатывает как управляемый, так и неуправляемый код из коробки.
Я также рассмотрел Common.Logging, фасад, который делает абстракцию ведения журнала api, он поддерживает log4net, библиотеку NLog и Entreprise. Я не думаю, что буду использовать его, но мне нравится, как они используют lambdas для повышения производительности при отключении журнала (функция, совместно используемая NLog и, возможно, другие).
Вы также можете рассмотреть Блок регистрации Microsoft Enterprise Library. Он поставляется с хорошим дизайнером.
Я думаю, что общий консенсус в том, что nlog немного проще настраивать и использовать. Оба они вполне способны.
Основываясь на моем опыте, SmartInspect превосходит как NLog, так и log4net.
Его чрезвычайно прост в использовании, документация отличная, и вы можете просматривать и фильтровать ранее записанные сообщения с помощью своего интерактивного просмотра журналов, что является огромным преимуществом в реальном мире.
Одна вещь, которая мне нравится - это вкладки с данными в виде вкладок, например вкладки браузера в Chrome. Каждая вкладка может предоставить другой отфильтрованный вид журнала.