Skip to content

Commit 8335eb4

Browse files
Disable all non host startup logs for v3.x (#10399)
* Filter logs in V3 and updating tests * Tests update * Test update * remove unused using * Minor update to linq * Updating constant * Adding to release notes * Naming updates * Naming update
1 parent 56d1b36 commit 8335eb4

File tree

10 files changed

+36
-2
lines changed

10 files changed

+36
-2
lines changed

release_notes.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@
33
- My change description (#PR)
44
-->
55
*Please note we have reached end-of-life (EOL) support for v3.x.* For more information on supported runtime versions, please see [here.](https://learn.microsoft.com/en-us/azure/azure-functions/functions-versions?tabs=v4&pivots=programming-language-csharp)
6+
7+
- Disable all non host startup logs for v3.x (#10399)

src/WebJobs.Script/Extensions/ScriptLoggingBuilderExtensions.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
// Licensed under the MIT License. See License.txt in the project root for license information.
33

44
using System.Collections.Concurrent;
5+
using System.Collections.Immutable;
56
using System.Linq;
67
using Microsoft.AspNetCore.Hosting;
78
using Microsoft.Azure.WebJobs.Script;
9+
using Microsoft.Azure.WebJobs.Script.Config;
810
using Microsoft.Azure.WebJobs.Script.Configuration;
911
using Microsoft.Extensions.Configuration;
1012
using Microsoft.Extensions.Hosting;
@@ -36,7 +38,11 @@ internal static bool Filter(string category, LogLevel actualLevel, LogLevel minL
3638

3739
private static bool IsFiltered(string category)
3840
{
39-
return _filteredCategoryCache.GetOrAdd(category, c => ScriptConstants.SystemLogCategoryPrefixes.Where(p => category.StartsWith(p)).Any());
41+
ImmutableArray<string> systemLogCategoryPrefixes = FeatureFlags.IsEnabled(ScriptConstants.FeatureFlagEnableHostLogs)
42+
? ScriptConstants.SystemLogCategoryPrefixes
43+
: ScriptConstants.RestrictedSystemLogCategoryPrefixes;
44+
45+
return _filteredCategoryCache.GetOrAdd(category, c => systemLogCategoryPrefixes.Any(p => category.StartsWith(p)));
4046
}
4147

4248
public static void AddConsoleIfEnabled(this ILoggingBuilder builder, HostBuilderContext context)

src/WebJobs.Script/ScriptConstants.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ public static class ScriptConstants
124124
public const string FeatureFlagDisableWorkerIndexing = "DisableWorkerIndexing";
125125
public const string FeatureFlagEnableMultiLanguageWorker = "EnableMultiLanguageWorker";
126126
public const string FeatureFlagEnableLinuxEPExecutionCount = "EnableLinuxFEC";
127+
public const string FeatureFlagEnableHostLogs = "EnableHostLogs";
127128
public const string HostingConfigSwtAuthenticationEnabled = "SwtAuthenticationEnabled";
128129
public const string HostingConfigSwtIssuerEnabled = "SwtIssuerEnabled";
129130

@@ -214,6 +215,7 @@ public static class ScriptConstants
214215
public static readonly long DefaultMaxRequestBodySize = 104857600;
215216

216217
public static readonly ImmutableArray<string> SystemLogCategoryPrefixes = ImmutableArray.Create("Microsoft.Azure.WebJobs.", "Function.", "Worker.", "Host.");
218+
public static readonly ImmutableArray<string> RestrictedSystemLogCategoryPrefixes = ImmutableArray.Create("Host.Startup");
217219

218220
public static readonly string FunctionsHostingConfigSectionName = "FunctionsHostingConfig";
219221
public static readonly string MaximumSupportedBundleV3Version = "FunctionRuntimeV3MaxBundleV3Version";

test/WebJobs.Script.Tests.Integration/ApplicationInsights/ApplicationInsightsTestFixture.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public ApplicationInsightsTestFixture(string scriptRoot, string testId)
2323
string scriptPath = Path.Combine(Environment.CurrentDirectory, scriptRoot);
2424
string logPath = Path.Combine(Path.GetTempPath(), @"Functions");
2525
Environment.SetEnvironmentVariable(EnvironmentSettingNames.FunctionWorkerRuntime, testId);
26+
Environment.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableHostLogs);
2627

2728
WebHostOptions = new ScriptApplicationHostOptions
2829
{

test/WebJobs.Script.Tests.Integration/Host/StandbyManager/StandbyInitializationTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public async Task IsPlaceholderMode_ThroughoutInitialization_EvaluatesCorrectly(
3232
string standbyPath = Path.Combine(Path.GetTempPath(), "functions", "standby", "wwwroot");
3333
string specializedScriptRoot = @"TestScripts\CSharp";
3434
string scriptRootConfigPath = ConfigurationPath.Combine(ConfigurationSectionNames.WebHost, nameof(ScriptApplicationHostOptions.ScriptPath));
35+
SystemEnvironment.Instance.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableHostLogs);
3536

3637
var settings = new Dictionary<string, string>()
3738
{

test/WebJobs.Script.Tests.Integration/Host/StandbyManager/StandbyManagerE2ETestBase.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ protected async Task<IWebHostBuilder> CreateWebHostBuilderAsync(string testDirNa
6666
environment.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteName, "test-host-name");
6767
}
6868

69+
SystemEnvironment.Instance.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableHostLogs);
70+
6971
var webHostBuilder = Program.CreateWebHostBuilder()
7072
.ConfigureAppConfiguration(c =>
7173
{

test/WebJobs.Script.Tests.Integration/ScriptHostEndToEnd/EndToEndTimeoutTests.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,18 @@
1818

1919
namespace Microsoft.Azure.WebJobs.Script.Tests.EndToEnd
2020
{
21-
public class EndToEndTimeoutTests
21+
public class EndToEndTimeoutTests : IClassFixture<EndToEndTimeoutTests.TestFixture>
2222
{
2323
private static readonly ScriptSettingsManager SettingsManager = ScriptSettingsManager.Instance;
2424
private TestLoggerProvider _loggerProvider = new TestLoggerProvider();
2525

26+
TestFixture Fixture;
27+
28+
public EndToEndTimeoutTests(TestFixture fixture)
29+
{
30+
Fixture = fixture;
31+
}
32+
2633
[Fact]
2734
public async Task TimeoutTest_SyncFunction_CSharp()
2835
{
@@ -169,5 +176,13 @@ public Task OnUnhandledExceptionAsync(ExceptionDispatchInfo exceptionInfo)
169176
return Task.CompletedTask;
170177
}
171178
}
179+
180+
public class TestFixture
181+
{
182+
static TestFixture()
183+
{
184+
ScriptSettingsManager.Instance.SetSetting(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableHostLogs);
185+
}
186+
}
172187
}
173188
}

test/WebJobs.Script.Tests.Integration/ScriptHostEndToEnd/ScriptHostEndToEndTestFixture.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ public async Task InitializeAsync()
100100
{
101101
Environment.SetEnvironmentVariable(RpcWorkerConstants.FunctionsWorkerDynamicConcurrencyEnabled, "true");
102102
}
103+
104+
Environment.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableHostLogs);
103105
IConfiguration configuration = TestHelpers.GetTestConfiguration();
104106
string connectionString = configuration.GetWebJobsConnectionString(ConnectionStringNames.Storage);
105107
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);

test/WebJobs.Script.Tests.Integration/WebHostEndToEnd/SpecializationE2ETests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public SpecializationE2ETests(ITestOutputHelper testOutputHelper)
5656
{
5757
{ EnvironmentSettingNames.AzureWebsitePlaceholderMode, "1" },
5858
{ EnvironmentSettingNames.AzureWebsiteContainerReady, null },
59+
{ EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableHostLogs },
5960
};
6061

6162
_environment = new TestEnvironment(settings);

test/WebJobs.Script.Tests/Configuration/DefaultDependencyValidatorTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ public async Task Validator_AllValid()
3636
[Fact]
3737
public async Task Validator_InvalidServices_LogsError()
3838
{
39+
SystemEnvironment.Instance.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableHostLogs);
40+
3941
LogMessage invalidServicesMessage = await RunTest(configureJobHost: s =>
4042
{
4143
s.AddSingleton<IHostedService, MyHostedService>();

0 commit comments

Comments
 (0)