diff --git a/.autover/changes/a6ea8820-2eb2-4ce7-ba06-a1141e740a9b.json b/.autover/changes/a6ea8820-2eb2-4ce7-ba06-a1141e740a9b.json new file mode 100644 index 000000000..cdfbadb71 --- /dev/null +++ b/.autover/changes/a6ea8820-2eb2-4ce7-ba06-a1141e740a9b.json @@ -0,0 +1,11 @@ +{ + "Projects": [ + { + "Name": "Amazon.Lambda.TestTool.BlazorTester", + "Type": "Patch", + "ChangelogMessages": [ + "Fixed issue supporting parameterized logging APIs added to Amazon.Lambda.Core in version 2.4.0" + ] + } + ] +} \ No newline at end of file diff --git a/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj b/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj index 9c44cdf94..9cab5238c 100644 --- a/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj +++ b/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj @@ -9,7 +9,7 @@ - + diff --git a/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaMocks/LocalLambdaLogger.cs b/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaMocks/LocalLambdaLogger.cs index 081dcf3da..3036b3518 100644 --- a/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaMocks/LocalLambdaLogger.cs +++ b/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaMocks/LocalLambdaLogger.cs @@ -1,4 +1,5 @@ -using System.Text; +using System; +using System.Text; using Amazon.Lambda.Core; namespace Amazon.Lambda.TestTool.Runtime.LambdaMocks @@ -6,7 +7,33 @@ namespace Amazon.Lambda.TestTool.Runtime.LambdaMocks public class LocalLambdaLogger : ILambdaLogger { private StringBuilder _buffer = new StringBuilder(); - + + public void Log(string level, string message) + { + _buffer.AppendLine($"Level = {level}, Message = {message}"); + } + + public void Log(string level, string message, params object[] args) + { + _buffer.Append($"Level = {level}, Message = {message}"); + if (args?.Length > 0) + _buffer.AppendLine($", Arguments = {string.Join(',', args)}"); + else + _buffer.AppendLine(); + } + + public void Log(string level, Exception exception, string message, params object[] args) + { + + _buffer.Append($"Level = {level}, Message = {message}"); + if (args?.Length > 0) + _buffer.AppendLine($", Arguments = {string.Join(',', args)}"); + else + _buffer.AppendLine(); + + _buffer.AppendLine(exception.ToString()); + } + public void Log(string message) { _buffer.Append(message); diff --git a/Tools/LambdaTestTool/tests/Amazon.Lambda.TestTool.Tests/ConsoleCaptureTests.cs b/Tools/LambdaTestTool/tests/Amazon.Lambda.TestTool.Tests/ConsoleCaptureTests.cs index 5399684d7..b514e265b 100644 --- a/Tools/LambdaTestTool/tests/Amazon.Lambda.TestTool.Tests/ConsoleCaptureTests.cs +++ b/Tools/LambdaTestTool/tests/Amazon.Lambda.TestTool.Tests/ConsoleCaptureTests.cs @@ -37,5 +37,22 @@ public void CaptureStandardError() Assert.DoesNotContain("NOT_CAPTURED", logger.Buffer); } + + [Fact] + public void CallParameterizedLoggingMethods() + { + var logger = new LocalLambdaLogger(); + + logger.Log("INFO", "TheMessage"); + logger.Log("WARN", "TheMessage {argument}", "TheArgument"); + logger.Log("ERROR", new ApplicationException("TheApplicationException"), "TheMessageWithException"); + logger.Log("ERROR", new ApplicationException("TheApplicationException"), "TheMessageWithException {argument}", "TheExceptionArgument"); + + Assert.Contains("Level = INFO, Message = TheMessage", logger.Buffer); + Assert.Contains("Level = WARN, Message = TheMessage {argument}, Arguments = TheArgument", logger.Buffer); + Assert.Contains("Level = ERROR, Message = TheMessageWithException", logger.Buffer); + Assert.Contains("System.ApplicationException: TheApplicationException", logger.Buffer); + Assert.Contains("Level = ERROR, Message = TheMessageWithException {argument}, Arguments = TheExceptionArgument", logger.Buffer); + } } } \ No newline at end of file