У меня есть приложение-функция 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).
Что мне здесь не хватает?
Возможно, это не очень хорошо сформулировано, я отредактирую это, но это означает, что у меня есть более одного приложения-функции Azure, над которым я работаю, конфигурация в файле хостов в обоих проектах идентична, но один проект работает (информация журналов сообщения для ai), а другой нет. Это МОЖЕТ быть что-то неправильно настроенное в ИИ - но я не знаю что - вот в чем вопрос, я настроил ИИ и приложение-функцию точно так же, как и в прошлом, но при этом новое. не работает – что я мог пропустить, что могло бы вызвать проблему, которую я наблюдаю?
App Insights имеет множество настроек относительно того, что сохраняется, включая уровни и сохранение только выборки (опять же, в зависимости от уровней журнала).
Да, я знаю об этом. Как я уже говорил, я ищу руководство о том, где это будет настроено, поскольку мне никогда раньше не приходилось это менять, и на самом деле вся эта конфигурация находится в файле host.json.
Здесь это выходит за рамки приемлемого вопроса. Это не форум поддержки Azure. Это касается вопросов, связанных с разработкой программного обеспечения, а не его развертыванием и обслуживанием инфраструктуры.
Не совсем, поскольку нам еще предстоит выяснить, в чем заключается проблема. Вполне возможно, что проблема связана с приложением-функцией. Судя по вашим ответам, я предполагаю, что вы тоже этого не знаете, поэтому спасибо за комментарии, они бесполезны, но я буду иметь в виду все, что вы сказали.





Была такая же проблема с функциями .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/…
Что означает «та же конфигурация используется в другом моем приложении-функции»? Вы не указали ничего о том, как настраиваются ресурсы App Insights. Если конфигурации кода идентичны, но за это отвечает конфигурация ресурсов Azure, это выходит за рамки соответствующего вопроса для этого места.