Невозможно увидеть мои сообщения журнала ниже, чем «Предупреждение» на Azure Monitor

Я создал статическое веб-приложение Azure. Я могу видеть, как запросы моих функций API выполняются в аналитике приложений (Монитор). Но я не вижу сообщений журнала ниже Warning. В функции Azure я регистрирую сообщения, как показано ниже:

        _logger.LogTrace($">>> Log Trace");
        _logger.LogDebug($">>> Log Debug");
        _logger.LogInformation($">>> Log Information");
        _logger.LogWarning($">>> Log Warning");
        _logger.LogError($">>> Log Error");
        _logger.LogCritical($">>> Log Critical");

        Console.WriteLine($">>> Console WriteLine");

Как вы можете видеть ниже, отсутствуют TraceDebugInformation сообщения регистрации.

Ниже мой файл .csproj.

<Project Sdk = "Microsoft.NET.Sdk">
    <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
    <OutputType>Exe</OutputType>
    <ImplicitUsings>enable</ImplicitUsings>
    </PropertyGroup>
    <ItemGroup>
    <FrameworkReference Include = "Microsoft.AspNetCore.App" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker" Version = "1.20.1" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http" Version = "3.1.0" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version = "1.2.0" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.Sdk" Version = "1.16.4" />
    <PackageReference Include = "Microsoft.ApplicationInsights.WorkerService" Version = "2.21.0" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.ApplicationInsights" Version = "1.1.0" />
    <PackageReference Include = "Microsoft.EntityFrameworkCore" Version = "8.0.4" />
    <PackageReference Include = "Microsoft.EntityFrameworkCore.Sqlite" Version = "8.0.3" />
    <PackageReference Include = "Microsoft.EntityFrameworkCore.Tools" Version = "8.0.3">
        <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include = "Newtonsoft.Json" Version = "13.0.3" />
    </ItemGroup>
    <ItemGroup>
    <ProjectReference Include = "..\SoutienScolaireV2.Shared\SoutienScolaireV2.Shared.csproj" />
    </ItemGroup>
    <ItemGroup>
    <None Update = "Data\database.db">
        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update = "host.json">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update = "local.settings.json">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
    </ItemGroup>
    <ItemGroup>
    <Using Include = "System.Threading.ExecutionContext" Alias = "ExecutionContext" />
    </ItemGroup>
    <ItemGroup>
    <Folder Include = "Data\" />
    </ItemGroup>
</Project>

Ниже мой файл host.json.

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "logLevel": {
        "default": "Information",
        "Function": "Information"
      },
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request",
        "logLevel": {
          "default": "Trace"
        }
      },
      "enableLiveMetricsFilters": true
    },
    "logLevel": {
      "default": "Information",
      "Function": "Information"
    }
  }
}

Чего не хватает, чтобы увидеть все мои сообщения журнала?

Какая версия вашего приложения? Можете ли вы поделиться своим .csproj файлом?

Harshitha 27.04.2024 20:08

Также поделитесь своим кодом host.jsob в текстовом формате.

Harshitha 28.04.2024 07:33

@Harshitha Я обновил свой вопрос запрошенной информацией.

Bronzato 28.04.2024 11:04

Итак, проблема в функции Azure, размещенной в статическом приложении, и вы не можете регистрировать информацию и отслеживать ее?

Harshitha 28.04.2024 11:54

@Харшита Действительно. Как вы можете видеть в моем вопросе, я регистрирую разные типы сообщений, но сообщения Trace и Information никогда не отображаются в Monitor на моем портале Azure.

Bronzato 29.04.2024 10:41

Попробуйте эту Конфигурацию в host.json файле.

Harshitha 29.04.2024 10:46

Ссылка, которую вы предложили выше, полезна, когда журналы не записываются в Application Insights. Для меня это не так. Отсутствуют только сообщения журнала Trace, Debug и Information.

Bronzato 29.04.2024 11:37

Хорошо... Попробую со своей стороны.

Harshitha 29.04.2024 11:56

Вы пробовали конфигурацию, которой я поделился?

Harshitha 29.04.2024 12:31

@Harshitha да, с тем же результатом, что и раньше.

Bronzato 29.04.2024 13:08

Можете ли вы поделиться своим репозиторием кода?

Harshitha 29.04.2024 13:14

Давайте продолжим обсуждение в чате.

Harshitha 29.04.2024 13:16
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
12
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я попробовал ваш код и внес изменения в файл Program.cs.

 services.Configure<LoggerFilterOptions>(options =>
 {
     LoggerFilterRule logfilter = options.Rules.FirstOrDefault(rule => rule.ProviderName
         == "Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider");

     if (logfilter is not null)
     {
         options.Rules.Remove(logfilter);
     }
 });
  • Теперь я могу видеть следы информации журнала, а также другие уровни серьезности.

Мой Program.cs файл:

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

var host = new HostBuilder()
    .ConfigureFunctionsWebApplication()
    .ConfigureServices(services =>
    {
        services.AddApplicationInsightsTelemetryWorkerService();
        services.ConfigureFunctionsApplicationInsights();
        services.Configure<LoggerFilterOptions>(options =>
        {
            LoggerFilterRule logfilter = options.Rules.FirstOrDefault(rule => rule.ProviderName
                == "Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider");

            if (logfilter is not null)
            {
                options.Rules.Remove(logfilter);
            }
        });
    })    
    .Build();
host.Run();
  • И я также могу регистрировать все трассировки с помощью моего кода по умолчанию и с приведенной ниже конфигурацией.

Мой host.json файл:

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    },
    "logLevel": {
      "default": "Information"
    }
  }
}
  • Когда мы создаем приложение-функцию, изначально Application Insights настраивается для локального использования.
  • Отключите его и измените на Azure Application Insights.

Обратитесь к этой SOthread, чтобы настроить его.

Мой .csproj файл:

<Project Sdk = "Microsoft.NET.Sdk">
  <PropertyGroup>
  <TargetFramework>net8.0</TargetFramework>
  <AzureFunctionsVersion>v4</AzureFunctionsVersion>
  <OutputType>Exe</OutputType>
  <ImplicitUsings>enable</ImplicitUsings>
  <Nullable>enable</Nullable>
  <ApplicationInsightsResourceId>/subscriptions/****/resourceGroups/****/providers/microsoft.insights/components/AppInsights</ApplicationInsightsResourceId>
  <UserSecretsId>****</UserSecretsId>
</PropertyGroup>
 <ItemGroup>
   <FrameworkReference Include = "Microsoft.AspNetCore.App" />
   <PackageReference Include = "Microsoft.Azure.Functions.Worker" Version = "1.20.1" />
   <PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http" Version = "3.1.0" />
   <PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version = "1.2.0" />
   <PackageReference Include = "Microsoft.Azure.Functions.Worker.Sdk" Version = "1.16.4" />
   <PackageReference Include = "Microsoft.ApplicationInsights.WorkerService" Version = "2.21.0" />
   <PackageReference Include = "Microsoft.Azure.Functions.Worker.ApplicationInsights" Version = "1.1.0" />
   <PackageReference Include = "Microsoft.Extensions.Configuration.UserSecrets" Version = "8.0.0" />
 </ItemGroup>
    -------
    -------          
</Project>

Поиск транзакции:

Журналы:

Живые показатели:

Другие вопросы по теме