Почему значение App Insight LogLevel в настройках приложения в ASP. NET Core 3.1 игнорируется? - PullRequest
1 голос
/ 06 мая 2020

Мы используем ILogger на веб-сайте ASP. NET Core 3.1 с использованием пакета Microsoft.ApplicationInsights.AspNetCore версии 2.14. Мы пытаемся включить регистрацию информационных сообщений в App Insight, например. _logger.LogInformation ("здесь информация")

В нашем запуске в ConfigureServices мы включаем App Insights:

services.AddApplicationInsightsTelemetry();

У нас есть следующие настройки приложения. json файл:

{
    "Logging": {
        "LogLevel": {
            "Default": "Information",
            "Microsoft": "Warning",
            "Microsoft.Hosting.Lifetime": "Information"
        }
    },
    "ApplicationInsights": {
        "InstrumentationKey": "12345678-1234-5678-1234-1234567890ab",
        "LogLevel": {
            "Default": "Information",
            "Microsoft": "Warning",
            "Microsoft.Hosting.Lifetime": "Information"
        }
    },

Он правильно получает ключ аналитики приложения (мы получаем нормальные показатели, записи журнала, такие как исключения), однако ни один из наших вызовов logger.LogInformation («Информация здесь») не отправляется / не записывается на панели инструментов App Insight.

Я нашел этот вопрос, который похож:

ILogger не соблюдает уровень журнала для Application Insights

Но ответ все же на самом деле не касается того, как иметь возможность изменить уровень журнала из настроек приложения. json файл против жесткого кодирования уровня журнала в коде.

Похоже, из документов, это должно "просто работает", но это не так.

https://docs.microsoft.com/en-us/azure/azure-monitor/app/ilogger#control -уровень ведения журнала

Где мы ошибаемся?

1 Ответ

1 голос
/ 06 мая 2020

У вас есть свойство LogLevel для ApplicationInsights не в том месте. Вот как это должно выглядеть:

{
    "Logging": {
        "LogLevel": {
            "Default": "Information",
            "Microsoft": "Warning",
            "Microsoft.Hosting.Lifetime": "Information"
        },
        "ApplicationInsights": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft": "Warning",
                "Microsoft.Hosting.Lifetime": "Information"
            }
        }
    },
    "ApplicationInsights": {
        "InstrumentationKey": "12345678-1234-5678-1234-1234567890ab"    
    },

Конфигурация уровня журнала находится под родительским элементом Logging, но InstrumentationKey находится за пределами этой иерархии.

См. Настройте ведение журнала в официальной ASP. NET Core документации для получения дополнительных сведений о конфигурации c, определяемой поставщиком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...