Почему журналы дублируются в функциях Azure после перехода на изолированный рабочий процесс .NET 8?C#

Место общения программистов C#
Ответить
Anonymous
 Почему журналы дублируются в функциях Azure после перехода на изолированный рабочий процесс .NET 8?

Сообщение Anonymous »

Недавно я перенес свой проект Функции Azure с .NET 6 In-Process Worker на .NET 8 изолированный Worker и заметил, что мои журналы дублируются при локальном запуске и в Application Insights. Например, когда я регистрирую сообщение с помощью ILogger, одно и то же сообщение появляется в консоли дважды.

Сведения о среде:

  • Предыдущая настройка: .NET 6, In-Process Worker
  • Текущая настройка >: .NET 8, изолированный рабочий процесс
  • Основные инструменты функций Azure: версия 4.x
  • .NET SDK: версия 8.0.x
    Шаблон проекта: Изолированный работник

Код: Выделить всё

Project.csproj

Код: Выделить всё


net8.0
v4
Exe
false











PreserveNewest


PreserveNewest
Never




Код: Выделить всё

host.json

Код: Выделить всё

{
"version": "2.0",
"logging": {
"ApplicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
},
"enableLiveMetricsFilters": true
}
}
}

Код: Выделить всё

Program.cs

Код: Выделить всё

 public static IHost BuildPublisher(this IHostBuilder hostBuilder)
=> hostBuilder.ConfigureHostConfiguration(HostConfiguration)
.ConfigureFunctionsWebApplication()
.ConfigureServices(AddServices)
.ConfigureLogging(logging =>
{
logging.Services.Configure(options =>
{
LoggerFilterRule defaultRule = options.Rules.FirstOrDefault(rule => rule.ProviderName
== "Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider");
if (defaultRule is not null)
{
options.Rules.Remove(defaultRule);
};

});
})
.Build();

...///...

services.AddApplicationInsightsTelemetryWorkerService(configuration);
services.ConfigureFunctionsApplicationInsights();

Код: Выделить всё

Function1.cs

Код: Выделить всё

public PlanningSyncFunction(ILogger  logger)
{
logger.LogDebug("[DEBUG]");
logger.LogInformation("[INFO]");
logger.LogWarning("[WARN]");
logger.LogError("[ERR]");
}
Вывод в консоль

Код: Выделить всё

[2024-12-12T10:11:35.505Z] Content-Type:application/json;odata=minimalmetadata;streaming=true;charset=utf-8
[2024-12-12T10:11:35.506Z]
[2024-12-12T10:11:35.514Z] info: Company.Functions.PlanningSyncFunction[0]
[2024-12-12T10:11:35.516Z]       [INFO]
[2024-12-12T10:11:35.518Z] [INFO]
[2024-12-12T10:11:35.522Z] warn: Company.Functions.PlanningSyncFunction[0]
[2024-12-12T10:11:35.523Z]       [WARN]
[2024-12-12T10:11:35.527Z] [WARN]
[2024-12-12T10:11:35.529Z] fail: Company.Functions.PlanningSyncFunction[0]
[2024-12-12T10:11:35.529Z]       [ERR]
[2024-12-12T10:11:35.532Z] [ERR]
[2024-12-12T10:11:35.560Z] info: Azure.Core[1]
Изображение

Вопросы:

  • Почему журналы дублируются после перехода на .NET 8 изолированный рабочий процесс?
  • Это связано с изменениями в настройках по умолчанию поведение ведения журнала изолированного рабочего процесса функций Azure?
  • Как предотвратить дублирование, сохраняя при этом надлежащую функциональность ведения журнала?
Спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/792 ... et-8-isola
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»