Может кто-нибудь, пожалуйста, объясните, как заставить ILogger действительно что-то регистрировать в приложениях Insight при использовании Azure Function V2 (.net Core)?
Мы настроили Application Insights, и он показывает телеметрию в реальном времени и необработанные исключения. То, что мы пытаемся сделать, - это заставить приложение Insights хранить журналы, которые мы создаем с помощью ILogger по умолчанию.
Независимо от того, какой тип logLevel мы используем (Информация, Предупреждение, Ошибка, Критическое) - ничего не сохраняется в понимании приложений.
Я также пытался создать 500 сообщений в журнале в надежде, что это может подтолкнуть его к пониманию приложения в виде пакета.
Я что-то упускаю здесь очевидное? Может кто-нибудь подсказать, как использовать ILogger по умолчанию, чтобы он передавал что-то в Application Insights, связанный с функцией Azure App V2 (ядро .net)?
host.json
{
"version": "2.0",
"functionTimeout": "00:10:00",
"extensions": {
"durableTask": {
"maxConcurrentActivityFunctions": 4,
"maxConcurrentOrchestratorFunctions": 1
}
},
"logging": {
"fileLoggingMode": "debugOnly",
"logLevel": {
"default": "Information"
},
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond": 5
}
}
}
}
Функция Azure V2, TimerTrigger, DurableOrchestrationClient:
[FunctionName("MainTriggerEntry")]
public static async Task RunMainTriggerEntry([TimerTrigger("%CRON_EXPRESSION%", RunOnStartup = false)]TimerInfo timer,
[OrchestrationClient]DurableOrchestrationClient starter, ILogger log)
{
log.LogInformation("[Information] Message!");
log.LogError("[Error]. Something occured");
log.LogCritical("[Critical] Critical issue");
for (var i = 0; i < 500; i++)
{
log.LogWarning($"[Warning] Logging to Application insights. {i}");
}
// We don't want more than one orchestrator running at the same time:
var orchestrationStatus = await starter.GetStatusAsync(OrchestratorInstanceGuid);
if (orchestrationStatus == null || !orchestrationStatus.IsBusy())
{
var instanceId = await starter.StartNewAsync(OrchestratorFunctionName, OrchestratorInstanceGuid, null);
log.LogInformation($"Triggering {OrchestratorFunctionName} function with an ID '{instanceId}'.");
}
else
{
log.LogInformation($"{OrchestratorFunctionName} function with an ID '{OrchestratorInstanceGuid}' is already running.");
}
}
Ничего не отображается в комментариях к приложениям, которые мы зарегистрировали. Но сбои появляются так, как должны:

Это показывает, что ILogger что-то сохраняет на диске:

Подробнее:
- Пакет Nuget Microsoft.NET.SDK.Functions v1.0.26
- Функция Azure v2 подключена к аналитическим сведениям Apllication с помощью APPINSIGHTS_INSTRUMENTATIONKEY
- Информация о приложении показывает прямую телеметрию и исключения
- Приложение показывает некоторые данные, но не из ILogger