(This post is still draft as I work out a minimal example)

Isolated Functions (.NET 8)

From this docs page: https://learn.microsoft.com/en-us/azure/azure-functions/dotnet-isolated-process-guide?tabs=windows#configure-startup

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()
    .ConfigureServices(services => {
        services.AddApplicationInsightsTelemetryWorkerService();
        services.ConfigureFunctionsApplicationInsights();
    })
    .ConfigureLogging(logging =>
    {
        logging.Services.Configure<LoggerFilterOptions>(options =>
        {
            LoggerFilterRule defaultRule = options.Rules.FirstOrDefault(rule => rule.ProviderName
                == "Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider");
            if (defaultRule is not null)
            {
                options.Rules.Remove(defaultRule);
            }
        });
    })
    .Build();

host.Run();

Note the removal of the defaultRule after ConfigureServices.

Then, in your config.json (or whatever configuration provider you are referring), you can override the log level:

    "Logging": {
        "LogLevel": {
            "Default": "Warning",
            "Your.Namespace": "Information"
        },
        "ApplicationInsights": {
            "LogLevel": {
                "Default": "Warning",
                "Your.Namespace": "Information"
            }
        }
    }

ASP.NET Core Web API Background Service

Follow these sections: