ApplicationInsights не учитывает json настроенный уровень журнала - PullRequest
1 голос
/ 30 марта 2020

Учитывая это appsettings. json

{
  "ApplicationInsights": {
    "InstrumentationKey": "foobar",
    "LogLevel": {
      "Default": "Debug"
    }
  },
  "Logging": {
    "LogLevel": {
      "Default": "Debug"
    }
  },
  "AllowedHosts": "*"
}

И это из startup.cs

public void ConfigureServices(IServiceCollection services)
{
    var appSettingsSection = Configuration.GetSection("TD");
    var appSettings = new AppSettings();
    new ConfigureFromConfigurationOptions<AppSettings>(appSettingsSection).Configure(appSettings);
    services.Configure<AppSettings>(appSettingsSection);

    services.AddApplicationInsightsTelemetry();

    services.AddTransient<IMyService, MyService>();
    services.AddControllersWithViews();
    services.AddSpaStaticFiles(configuration =>
    {
        configuration.RootPath = "ClientApp";
    });
}

Почему я все еще вижу только Критические, Ошибки и Предупреждения в моем выходе AI?

например, из произвольных журналов с контроллера

public async Task<IActionResult> MyAction(string foobar)
{
    Logger.LogDebug($"Ilogger debug {foobar}");
    Logger.LogInformation($"Ilogger info {foobar}");
    Logger.LogWarning($"Ilogger warning {foobar}");
    Logger.LogError($"Ilogger error {foobar}");
    Logger.LogCritical($"Ilogger critical {foobar}");
}

Согласно документам Microsoft здесь

ApplicationInsightsLoggerProvider по умолчанию включен в Microsoft .ApplicationInsights.As pNet SDK версии 2.7.1 (и более поздних) при включении обычного мониторинга Application Insights с помощью одного из методов:

  • Путем вызова метода расширения UseApplicationInsights onIWebHostBuilder (в настоящее время устарел)
  • Вызывая метод расширения AddApplicationInsightsTelemetry для IServiceCollection

Так что я немного растерялся из-за того, что трассировки Debug / Info не выводятся.

В appsettings.development нет переопределений или параметров ведения журнала. json.

Я использую AppInsights SDK 2.13.1.

Asp NET Core 3.1.

1 Ответ

1 голос
/ 31 марта 2020

Что-то не так с appsettings.json (если вы уверены, что никакое другое место не перекрывает уровень ведения журнала). Уровень журнала для информации о приложении должен быть помещен в элемент Logging в файле. json (см. Официальный do c здесь ).

Должен выглядеть правильный как это:

{
  "ApplicationInsights": {
    "InstrumentationKey": "xxxxx"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Debug"
    },
    "ApplicationInsights": {
      "LogLevel": {
        "Default": "Debug"
      }
    }
  },
  "AllowedHosts": "*"
}

И результат теста:

enter image description here

...