Регистрация NLog в качестве регистратора для неопределенного хоста c в dot net core 3.1 - PullRequest
0 голосов
/ 16 января 2020

У меня нет веб-приложения c хост-приложения, в соответствии с https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1 Я должен добавить регистратор в .ConfigureLogging, но

  • ConfigureLogging имеет для меня другой прототип имеет в документах, ILoggingBuilder не имеет, например, .ClearProviders()
  • Я не могу использовать .AddNlog() для DI, как показано здесь
      .ConfigureLogging(logging =>
      {
          logging.ClearProviders();
          logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
      })
      .UseNLog();  // NLog: Setup NLog for Dependency injection

Я думаю, что моя путаница вызвана не построением веб-приложения, тогда как в руководствах указывается настройка NLog для asp. net. Почему NLog отличается от пакета для веб-приложения? Это вызвано тем, что NLog автоматически регистрирует события, выпущенные Kestrel или другими веб-спецификациями c? В чем разница между методом UseNLog (который является расширением, определенным NLog, который я предполагаю?) И регистрацией NLog в сервисах как singleton

1 Ответ

1 голос
/ 25 января 2020

Оба AddNLog() и ClearProviders() являются методами расширения. Вам необходимо добавить использование пространства имен вместе с соответствующими nuget-пакетами.

using NLog.Extensions.Logging;
using Microsoft.Extensions.Logging;

И добавить эти nuget-пакеты в ваш проект:

Также можно найти вики-страницы и примеры:

...