From 9fec2f7816948c860dc44ad187b19d84be2a7d27 Mon Sep 17 00:00:00 2001 From: Shyju Krishnankutty Date: Mon, 1 Aug 2022 12:34:03 -0700 Subject: [PATCH 1/3] Deleted the code which removed the "azfuncjsonlog:" prefix for log messages meant for tooling as core tools rely on that prefix. --- .../Workers/ProcessManagement/WorkerProcessUtilities.cs | 5 ----- src/WebJobs.Script/Workers/WorkerConsoleLogService.cs | 3 +-- .../Workers/WorkerConsoleLogServiceTests.cs | 5 ++--- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/WebJobs.Script/Workers/ProcessManagement/WorkerProcessUtilities.cs b/src/WebJobs.Script/Workers/ProcessManagement/WorkerProcessUtilities.cs index 74ae23dd78..f8556556bd 100644 --- a/src/WebJobs.Script/Workers/ProcessManagement/WorkerProcessUtilities.cs +++ b/src/WebJobs.Script/Workers/ProcessManagement/WorkerProcessUtilities.cs @@ -43,10 +43,5 @@ public static bool IsToolingConsoleJsonLogEntry(ConsoleLog consoleLog) { return consoleLog.Message.StartsWith(WorkerConstants.ToolingConsoleLogPrefix, StringComparison.OrdinalIgnoreCase); } - - public static string RemoveToolingConsoleJsonLogPrefix(string msg) - { - return Regex.Replace(msg, WorkerConstants.ToolingConsoleLogPrefix, string.Empty, RegexOptions.IgnoreCase); - } } } diff --git a/src/WebJobs.Script/Workers/WorkerConsoleLogService.cs b/src/WebJobs.Script/Workers/WorkerConsoleLogService.cs index 689627755b..f120925c03 100644 --- a/src/WebJobs.Script/Workers/WorkerConsoleLogService.cs +++ b/src/WebJobs.Script/Workers/WorkerConsoleLogService.cs @@ -65,8 +65,7 @@ internal async Task ProcessLogs() if (WorkerProcessUtilities.IsToolingConsoleJsonLogEntry(consoleLog)) { - _toolingConsoleJsonLoggerLazy.Value.Log(consoleLog.Level, - WorkerProcessUtilities.RemoveToolingConsoleJsonLogPrefix(consoleLog.Message)); + _toolingConsoleJsonLoggerLazy.Value.Log(consoleLog.Level, consoleLog.Message); } else { diff --git a/test/WebJobs.Script.Tests/Workers/WorkerConsoleLogServiceTests.cs b/test/WebJobs.Script.Tests/Workers/WorkerConsoleLogServiceTests.cs index 034cafe2ce..31543e2b15 100644 --- a/test/WebJobs.Script.Tests/Workers/WorkerConsoleLogServiceTests.cs +++ b/test/WebJobs.Script.Tests/Workers/WorkerConsoleLogServiceTests.cs @@ -73,13 +73,13 @@ public async Task WorkerConsoleLogService_ConsoleLogs_LogLevel_Expected(bool use { VerifyLogLevel(userLogs, "Test Message No keyword", LogLevel.Error); VerifyLogLevel(systemLogs, "[Test Worker Message No keyword]", LogLevel.Error); - VerifyLogLevel(toolingConsoleLogs, "Azure Functions .NET Worker (PID: 4) initialized in debug mode.", LogLevel.Error); + VerifyLogLevel(toolingConsoleLogs, "azfuncjsonlog:Azure Functions .NET Worker (PID: 4) initialized in debug mode.", LogLevel.Error); } else { VerifyLogLevel(userLogs, "Test Message No keyword", LogLevel.Information); VerifyLogLevel(systemLogs, "[Test Worker Message No keyword]", LogLevel.Information); - VerifyLogLevel(toolingConsoleLogs, "Azure Functions .NET Worker (PID: 4) initialized in debug mode.", LogLevel.Information); + VerifyLogLevel(toolingConsoleLogs, "azfuncjsonlog:Azure Functions .NET Worker (PID: 4) initialized in debug mode.", LogLevel.Information); } } @@ -88,7 +88,6 @@ private static void VerifyLogLevel(IList allLogs, string msg, LogLev var message = allLogs.FirstOrDefault(l => l.FormattedMessage.Contains(msg)); Assert.NotNull(message); Assert.DoesNotContain(WorkerConstants.LanguageWorkerConsoleLogPrefix, message.FormattedMessage); - Assert.DoesNotContain(WorkerConstants.ToolingConsoleLogPrefix, message.FormattedMessage); Assert.Equal(expectedLevel, message.Level); } } From 5cfbb5bf298d7d4ce3991ffd83c0d324369c4b14 Mon Sep 17 00:00:00 2001 From: Shyju Krishnankutty Date: Mon, 1 Aug 2022 16:58:32 -0700 Subject: [PATCH 2/3] Test improvements --- src/WebJobs.Script/Workers/WorkerConsoleLogService.cs | 1 + .../Workers/WorkerConsoleLogServiceTests.cs | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/WebJobs.Script/Workers/WorkerConsoleLogService.cs b/src/WebJobs.Script/Workers/WorkerConsoleLogService.cs index f120925c03..bcdab13b8b 100644 --- a/src/WebJobs.Script/Workers/WorkerConsoleLogService.cs +++ b/src/WebJobs.Script/Workers/WorkerConsoleLogService.cs @@ -65,6 +65,7 @@ internal async Task ProcessLogs() if (WorkerProcessUtilities.IsToolingConsoleJsonLogEntry(consoleLog)) { + // log with the message prefix as coretools expects it. _toolingConsoleJsonLoggerLazy.Value.Log(consoleLog.Level, consoleLog.Message); } else diff --git a/test/WebJobs.Script.Tests/Workers/WorkerConsoleLogServiceTests.cs b/test/WebJobs.Script.Tests/Workers/WorkerConsoleLogServiceTests.cs index 31543e2b15..a316509985 100644 --- a/test/WebJobs.Script.Tests/Workers/WorkerConsoleLogServiceTests.cs +++ b/test/WebJobs.Script.Tests/Workers/WorkerConsoleLogServiceTests.cs @@ -50,7 +50,7 @@ public async Task WorkerConsoleLogService_ConsoleLogs_LogLevel_Expected(bool use workerProcess.ParseErrorMessageAndLog("LanguageWorkerConsoleLog[Test Worker Message No keyword]"); workerProcess.ParseErrorMessageAndLog("LanguageWorkerConsoleLog[Test Worker Error Message]"); workerProcess.ParseErrorMessageAndLog("LanguageWorkerConsoleLog[Test Worker Warning Message]"); - workerProcess.ParseErrorMessageAndLog("azfuncjsonlog:Azure Functions .NET Worker (PID: 4) initialized in debug mode."); + workerProcess.ParseErrorMessageAndLog("azfuncjsonlog:{ 'name':'dotnet-worker-startup', 'workerProcessId' : 321 }"); // Act _ = _workerConsoleLogService.ProcessLogs().ContinueWith(t => { }); @@ -73,14 +73,16 @@ public async Task WorkerConsoleLogService_ConsoleLogs_LogLevel_Expected(bool use { VerifyLogLevel(userLogs, "Test Message No keyword", LogLevel.Error); VerifyLogLevel(systemLogs, "[Test Worker Message No keyword]", LogLevel.Error); - VerifyLogLevel(toolingConsoleLogs, "azfuncjsonlog:Azure Functions .NET Worker (PID: 4) initialized in debug mode.", LogLevel.Error); + VerifyLogLevel(toolingConsoleLogs, "azfuncjsonlog:{ 'name':'dotnet-worker-startup', 'workerProcessId' : 321 }", LogLevel.Error); } else { VerifyLogLevel(userLogs, "Test Message No keyword", LogLevel.Information); VerifyLogLevel(systemLogs, "[Test Worker Message No keyword]", LogLevel.Information); - VerifyLogLevel(toolingConsoleLogs, "azfuncjsonlog:Azure Functions .NET Worker (PID: 4) initialized in debug mode.", LogLevel.Information); + VerifyLogLevel(toolingConsoleLogs, "azfuncjsonlog:{ 'name':'dotnet-worker-startup', 'workerProcessId' : 321 }", LogLevel.Information); } + + Assert.True(toolingConsoleLogs.All(l => l.FormattedMessage.StartsWith(WorkerConstants.ToolingConsoleLogPrefix))); } private static void VerifyLogLevel(IList allLogs, string msg, LogLevel expectedLevel) From b0a0d8c2608f7eb7b828959323ea85be68842da6 Mon Sep 17 00:00:00 2001 From: Shyju Krishnankutty Date: Mon, 1 Aug 2022 17:17:23 -0700 Subject: [PATCH 3/3] Added release notes --- release_notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/release_notes.md b/release_notes.md index db3c10d3e9..f5f34d295c 100644 --- a/release_notes.md +++ b/release_notes.md @@ -5,3 +5,4 @@ - Update Python Worker Version to [4.4.0](https://github.com/Azure/azure-functions-python-worker/releases/tag/4.4.0) **Release sprint:** Sprint 125 [ [bugs](https://github.com/Azure/azure-functions-host/issues?q=is%3Aissue+milestone%3A%22Functions+Sprint+125%22+label%3Abug+is%3Aclosed) | [features](https://github.com/Azure/azure-functions-host/issues?q=is%3Aissue+milestone%3A%22Functions+Sprint+125%22+label%3Afeature+is%3Aclosed) ] +- Fix the bug where debugging of dotnet isolated function apps hangs in visual studio (#8596)