Регистрация в asp.net - это общий (протоколирующий) интерфейс и реализация протокола.
Вы можете использовать общий интерфейс и стороннюю библиотеку (например, NLog) вместе, поскольку инфраструктура подготовлена для этого.
Если вы NLog над встроенной лесозаготовки реализации вы выигрываете:
- изменения конфигурации на лету (во время работы приложения без перезагрузки)
- более целей (например, базы данных, файл). Во встроенном объекте нет цели файла: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging. Почтовая цель в NLog еще не установлена в netstandard, но она запланирована.
- больше возможностей в целевых (например, архивирование файлов)
- пишущих дополнительную информацию контекста, как
${processid}
- как мы вкладываем много в оптимализации производительности, я бы ожидать производительности.
- асинхронное ведение журнала - что не входит в asp.net протоколирование, насколько я знаю.
- расширенные функции, такие как буферизация, fallbacking & ограничения журналов, условие фильтра с контекстной информацией, пишущей CONCURRENT в один файл и т.д.
- NLog легче расширить (не только цели, но и макет рендеры, макеты и т.д.)
- возможность для структурного каротажа (Serilog, NLog 4.5)
Но, как всегда, если вам не нужны эти функции, то, возможно, меньше (библиотек) больше.
Пропущено ли асинхронное ведение журнала в NLog или из ядра ASP.NET? – grokky
Aspnet core. Перефразировал его :) – Julian
Что касается «изменения конфигурации на лету (при запуске приложения без перезагрузки)» -> некоторые из ASP.NET-серверы также поддерживают это! Но NLog определенно намного более привлекателен! – Eilon