#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"
}
}
}
}