как регистрировать пользовательские сообщения в журналах мониторинга Azure portal analytics

#c# #asp.net #azure #.net-core #azure-devops

#c# #asp.net #azure #.net-ядро #azure-devops

Вопрос:

Я пытаюсь добавить пользовательские журналы в свой веб-API c # asp dot net core. Я могу найти журналы вызовов API в Azure portal -> application insights -> журналы.

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

 public async Task Invoke(HttpContext httpContext)
{
    // First, get the incoming request
    var request = await FormatRequest(httpContext.Request);

    // TODO: Save log to chosen datastore
    _logger.LogInformation('custommessage101');

    // ------
}
  

В редакторе запросов log analytics я использовал приведенный ниже запрос, но он ничего не извлек. Это вообще правильное место (Azure portal -> application insights -> logs), на которое я смотрю?

 requests | search "custommessage101"
  

Ответ №1:

Возможно, при настройке вашего регистратора вы установили уровень журнала выше, чем информация.

Ниже задается уровень журнала, чтобы сохранялась регистрация информации:

 builder.AddFilter<Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider>("", LogLevel.Information);
  

Ответ №2:

Сообщения, зарегистрированные в ILogger интерфейсе, в конечном итоге отображаются как трассировки в Application insights. Примером запроса может быть:

 traces | where message == "custommessage101"
  

Другим вариантом может быть поиск:

введите описание изображения здесь

Уровень журнала по умолчанию для сообщений в Application Insights установлен на Warning . Как указывает Шираз, вам нужно установить для него значение информационный. Вы можете сделать это с помощью кода, показанного Shiraz, или путем настройки файла appsettings.json:

 {
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    },
    "ApplicationInsights": {
      "LogLevel": {
        "Default": "Information"
      }
    }
  }
}