Приложение Azure Function (.NET 8) не записывает информацию в аналитику приложения

У меня есть приложение-функция Azure .NET 8, над которым я работаю. Это первое приложение .NET 8, которое я создал, хотя я работал над приложениями-функциями начиная с .NET Core 3.1.

Я уверен, что это что-то действительно основное, чего мне не хватает, но я не понимаю, чего именно.

Это мой host.json

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "default": "debug"
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true
        "excludedTypes": "Request"
      }
    }
  }
}

Это функция:

[Function("MYFUNCNAME")]
public void Run([TimerTrigger("0 */1 * * * *")] TimerInfo myTimer)
{
    _logger.LogError("LOCAL THIS IS AN ERROR MESSAGE WHICH IS LOGGED");
    
    _logger.LogInformation($"THIS WONT BE LOGGED IN AI - THOUGH IT DOES SHOW IN THE CONSOLE");

    _logger.LogDebug("THIS IS NOT LOGGED EITHER");
}

В консоли я вижу ВСЕ сообщения.

Однако в статистике приложений я вижу только сообщения об ошибках.

Мне нужны все сообщения как в AI, так и в консоли.

Я в растерянности, у меня есть другое функциональное приложение с такой же конфигурацией, и оно работает отлично. Я не вижу никакой разницы между конфигурациями приложения-функции или аналитики приложения между рабочими и нерабочими проектами (за исключением того, что рабочий проект находится на .NET 6, а нерабочий — на .NET 8).

Что мне здесь не хватает?

Что означает «та же конфигурация используется в другом моем приложении-функции»? Вы не указали ничего о том, как настраиваются ресурсы App Insights. Если конфигурации кода идентичны, но за это отвечает конфигурация ресурсов Azure, это выходит за рамки соответствующего вопроса для этого места.

possum 14.03.2024 16:49

Возможно, это не очень хорошо сформулировано, я отредактирую это, но это означает, что у меня есть более одного приложения-функции Azure, над которым я работаю, конфигурация в файле хостов в обоих проектах идентична, но один проект работает (информация журналов сообщения для ai), а другой нет. Это МОЖЕТ быть что-то неправильно настроенное в ИИ - но я не знаю что - вот в чем вопрос, я настроил ИИ и приложение-функцию точно так же, как и в прошлом, но при этом новое. не работает – что я мог пропустить, что могло бы вызвать проблему, которую я наблюдаю?

5NRF 14.03.2024 16:59

App Insights имеет множество настроек относительно того, что сохраняется, включая уровни и сохранение только выборки (опять же, в зависимости от уровней журнала).

possum 14.03.2024 17:03

Да, я знаю об этом. Как я уже говорил, я ищу руководство о том, где это будет настроено, поскольку мне никогда раньше не приходилось это менять, и на самом деле вся эта конфигурация находится в файле host.json.

5NRF 14.03.2024 17:05

Здесь это выходит за рамки приемлемого вопроса. Это не форум поддержки Azure. Это касается вопросов, связанных с разработкой программного обеспечения, а не его развертыванием и обслуживанием инфраструктуры.

possum 14.03.2024 17:08

Не совсем, поскольку нам еще предстоит выяснить, в чем заключается проблема. Вполне возможно, что проблема связана с приложением-функцией. Судя по вашим ответам, я предполагаю, что вы тоже этого не знаете, поэтому спасибо за комментарии, они бесполезны, но я буду иметь в виду все, что вы сказали.

5NRF 14.03.2024 17:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
6
1 239
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Была такая же проблема с функциями .net7 в изолированном режиме. Я предполагаю, что ваше старое приложение-функция не работало в изолированном режиме, а новое работает?

Если это так, вам нужно настроить LogFilterOptions и удалить ApplicationInsightsLoggingProvider.

Это делается в вашем hostBuilder (находится в program.cs).

Вам просто нужно добавить следующее после вызова services.ConfigureFunctionsApplicationInsights().

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

    if (appInsightsLoggerProvider != default) options.Rules.Remove(appInsightsLoggerProvider);
});

Это не очень хорошо документировано, по крайней мере, я так не думал, но если вы погуглите «Руководство по изолированным процессам Azure Functions DotNet», то появится страница обучения Microsoft, на которой рассказывается об изолированной модели — там о ней явно не говорится, НО одна из примеры кода (в разделе запуска и настройки) включают в себя что-то очень похожее на приведенный выше код.

После этого все должно работать.

Ссылка на документацию Microsoft, подтверждающую этот ответ: Learn.microsoft.com/en-us/azure/azure-functions/…

Gavin 29.04.2024 11:08

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

Управляемое удостоверение не поддерживается для функции в среде приложения-контейнера
Функция Azure в определенный интервал времени для каждого клиента
Хранилище BLOB-объектов Azure получает исключение AuthorizationPermissionMismatch при публикации BLOB-объекта с тегами
Функция триггера таймера на портале Azure не работает
Добавить список конфигов в блок конфигурации app_settings
Развертывание функции Azure из GitHub с использованием PublishProfile приводит к ошибке «Не удалось получить настройки приложения Kudu, несанкционированный код 401»
Не удалось найти тип или имя пространства имен «Id» (вам не хватает директивы using или ссылки на сборку?) Проблема CosmosDBOutput
Является ли изолированная модель C# особенностью консольных приложений?
Ошибка отправки данных из функции Azure в концентратор событий Azure
Как извлечь внутренний код из функции Azure в дополнительный репозиторий, сохраняя при этом историю git?