From d26cf94ce28632114ba843a9aa9577dfef9bfd07 Mon Sep 17 00:00:00 2001 From: Malhar Khimsaria <96malhar@gmail.com> Date: Thu, 12 Dec 2024 14:22:54 -0800 Subject: [PATCH 1/4] Revert "Release 2024-12-11 (#287)" (#288) This reverts commit fe085e9dfa7a125db51b6d119efc4a7239fb7aff. --- .autover/autover.json | 50 +++++++++---------- .../f2cd4eda-bee4-4d41-9170-f8fdbe497a13.json | 18 +++++++ CHANGELOG.md | 7 --- .../AWS.Logger.AspNetCore.csproj | 4 +- src/AWS.Logger.Core/AWS.Logger.Core.csproj | 2 +- .../AWS.Logger.Log4net.csproj | 2 +- .../AWS.Logger.SeriLog.csproj | 4 +- src/NLog.AWS.Logger/NLog.AWS.Logger.csproj | 2 +- 8 files changed, 50 insertions(+), 39 deletions(-) create mode 100644 .autover/changes/f2cd4eda-bee4-4d41-9170-f8fdbe497a13.json diff --git a/.autover/autover.json b/.autover/autover.json index 863f14d..13aa4d2 100644 --- a/.autover/autover.json +++ b/.autover/autover.json @@ -1,27 +1,27 @@ { - "Projects": [ - { - "Name": "AWS.Logger.AspNetCore", - "Path": "src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj" - }, - { - "Name": "AWS.Logger.Core", - "Path": "src/AWS.Logger.Core/AWS.Logger.Core.csproj" - }, - { - "Name": "AWS.Logger.Log4net", - "Path": "src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj" - }, - { - "Name": "AWS.Logger.SeriLog", - "Path": "src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj" - }, - { - "Name": "NLog.AWS.Logger", - "Path": "src/NLog.AWS.Logger/NLog.AWS.Logger.csproj" - } - ], - "UseCommitsForChangelog": false, - "DefaultIncrementType": "Patch", - "ChangeFilesDetermineIncrementType": true + "Projects": [ + { + "Name": "AWS.Logger.AspNetCore", + "Path": "src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj" + }, + { + "Name": "AWS.Logger.Core", + "Path": "src/AWS.Logger.Core/AWS.Logger.Core.csproj" + }, + { + "Name": "AWS.Logger.Log4net", + "Path": "src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj" + }, + { + "Name": "AWS.Logger.SeriLog", + "Path": "src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj" + }, + { + "Name": "NLog.AWS.Logger", + "Path": "src/NLog.AWS.Logger/NLog.AWS.Logger.csproj" + } + ], + "UseCommitsForChangelog": false, + "DefaultIncrementType": "Patch", + "ChangeFilesDetermineIncrementType": true } \ No newline at end of file diff --git a/.autover/changes/f2cd4eda-bee4-4d41-9170-f8fdbe497a13.json b/.autover/changes/f2cd4eda-bee4-4d41-9170-f8fdbe497a13.json new file mode 100644 index 0000000..8604c4e --- /dev/null +++ b/.autover/changes/f2cd4eda-bee4-4d41-9170-f8fdbe497a13.json @@ -0,0 +1,18 @@ +{ + "Projects": [ + { + "Name": "AWS.Logger.AspNetCore", + "Type": "Patch", + "ChangelogMessages": [ + "Update package dependencies to address security vulnerabilities" + ] + }, + { + "Name": "AWS.Logger.SeriLog", + "Type": "Patch", + "ChangelogMessages": [ + "Update package dependencies to address security vulnerabilities" + ] + } + ] +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 297bd07..bfb5a68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,3 @@ -## Release 2024-12-11 - -### AWS.Logger.AspNetCore (3.5.4) -* Update package dependencies to address security vulnerabilities -### AWS.Logger.SeriLog (3.4.4) -* Update package dependencies to address security vulnerabilities - ## Release 2024-05-22 ### AWS.Logger.Core (3.3.3) diff --git a/src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj b/src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj index 65dcf7b..c0fef4e 100644 --- a/src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj +++ b/src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj @@ -1,4 +1,4 @@ - + netstandard2.0 @@ -22,7 +22,7 @@ True ..\..\public.snk - 3.5.4 + 3.5.3 diff --git a/src/AWS.Logger.Core/AWS.Logger.Core.csproj b/src/AWS.Logger.Core/AWS.Logger.Core.csproj index f2b170e..73cb9f7 100644 --- a/src/AWS.Logger.Core/AWS.Logger.Core.csproj +++ b/src/AWS.Logger.Core/AWS.Logger.Core.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;net45 diff --git a/src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj b/src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj index 38afdf5..a612fab 100644 --- a/src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj +++ b/src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;net45 diff --git a/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj b/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj index 4ef77ff..365b8e8 100644 --- a/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj +++ b/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;net45;net46 @@ -22,7 +22,7 @@ True ..\..\public.snk - 3.4.4 + 3.4.3 diff --git a/src/NLog.AWS.Logger/NLog.AWS.Logger.csproj b/src/NLog.AWS.Logger/NLog.AWS.Logger.csproj index 1711323..7197bef 100644 --- a/src/NLog.AWS.Logger/NLog.AWS.Logger.csproj +++ b/src/NLog.AWS.Logger/NLog.AWS.Logger.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;net45 From 5b636ff16b7e9b9c9d931600c05f64abe9545b5b Mon Sep 17 00:00:00 2001 From: Phil Asmar Date: Sat, 14 Dec 2024 13:55:48 -0500 Subject: [PATCH 2/4] fix: fixed issues with test suite instability --- test/AWS.Logger.AspNetCore.Tests/TestClass.cs | 18 +-- .../MultiThreadBufferFullTest.config | 2 +- .../MultiThreadTest.config | 2 +- .../OverrideLogStreamName.config | 2 +- .../Properties/AssemblyInfo.cs | 2 + test/AWS.Logger.Log4Net.Tests/TestClass.cs | 46 ++++-- test/AWS.Logger.Log4Net.Tests/log4net.config | 2 +- .../AWSNLogGroupEventSizeExceededTest.config | 4 +- ...SNLogGroupMultiThreadBufferFullTest.config | 4 +- .../AWSNLogGroupMultiThreadTest.config | 4 +- .../AWSNLogOverrideLogStreamName.config | 4 +- test/AWS.Logger.NLog.Tests/Regular.config | 4 +- test/AWS.Logger.NLog.Tests/TestClass.cs | 54 ++++--- .../AWSSeriLogGroup.json | 2 +- ...SeriLogGroupMultiThreadBufferFullTest.json | 2 +- .../AWSSeriLogGroupMultiThreadTest.json | 2 +- .../AWSSeriLogGroupOverrideLogStreamName.json | 2 +- ...SSeriLogGroupRestrictedToMinimumLevel.json | 2 +- .../SeriLoggerTestClass.cs | 141 ++++++++++-------- test/AWS.Logger.TestUtils/BaseTestClass.cs | 100 ++++++------- test/AWS.Logger.TestUtils/TestFixture.cs | 50 +++---- 21 files changed, 242 insertions(+), 207 deletions(-) diff --git a/test/AWS.Logger.AspNetCore.Tests/TestClass.cs b/test/AWS.Logger.AspNetCore.Tests/TestClass.cs index 727f863..6254591 100644 --- a/test/AWS.Logger.AspNetCore.Tests/TestClass.cs +++ b/test/AWS.Logger.AspNetCore.Tests/TestClass.cs @@ -80,10 +80,10 @@ private void LoggingSetup(string configFileName, string configSectionInfoBlockNa /// 10 debug messages to CloudWatchLogs. The results are then verified. /// [Fact] - public void ILogger() + public async Task ILogger() { LoggingSetup("appsettings.json",null); - SimpleLoggingTest(ConfigSection.Config.LogGroup); + await SimpleLoggingTest(ConfigSection.Config.LogGroup); } [Fact] @@ -129,10 +129,10 @@ public async Task MultiThreadTestMock() /// threads that log 200 debug messages each to CloudWatchLogs. The results are then verified. /// [Fact] - public void MultiThreadTest() + public async Task MultiThreadTest() { LoggingSetup("multiThreadTest.json",null); - MultiThreadTestGroup(ConfigSection.Config.LogGroup); + await MultiThreadTestGroup(ConfigSection.Config.LogGroup); } /// @@ -143,17 +143,17 @@ public void MultiThreadTest() /// inorder to force a buffer full scenario. The results are then verified. /// [Fact] - public void MultiThreadBufferFullTest() + public async Task MultiThreadBufferFullTest() { LoggingSetup("multiThreadBufferFullTest.json",null); - MultiThreadBufferFullTestGroup(ConfigSection.Config.LogGroup); + await MultiThreadBufferFullTestGroup(ConfigSection.Config.LogGroup); } [Fact] - public void OverrideLogStreamNameTest() + public async Task OverrideLogStreamNameTest() { LoggingSetup("overrideLogStreamName.json", null); - MultiThreadTestGroup(ConfigSection.Config.LogGroup, ConfigSection.Config.LogStreamName); + await MultiThreadTestGroup(ConfigSection.Config.LogGroup, ConfigSection.Config.LogStreamName); } /// @@ -165,7 +165,7 @@ protected override void LogMessages(int count) Logger.LogError(0, new Exception("Exception message."), "Error message"); for (int i = 0; i < count-2; i++) { - Logger.LogDebug(string.Format("Test logging message {0} Ilogger, Thread Id:{1}", i, Thread.CurrentThread.ManagedThreadId)); + Logger.LogDebug(string.Format("Test logging message {0} Ilogger, Thread Id:{1}", i, Environment.CurrentManagedThreadId)); } Logger.LogDebug(LASTMESSAGE); } diff --git a/test/AWS.Logger.Log4Net.Tests/MultiThreadBufferFullTest.config b/test/AWS.Logger.Log4Net.Tests/MultiThreadBufferFullTest.config index d1ffa91..ef677b2 100644 --- a/test/AWS.Logger.Log4Net.Tests/MultiThreadBufferFullTest.config +++ b/test/AWS.Logger.Log4Net.Tests/MultiThreadBufferFullTest.config @@ -3,7 +3,7 @@ - AWSLog4NetGroupMultiThreadBufferFullTest + {LOG_GROUP_NAME} us-west-2 10 diff --git a/test/AWS.Logger.Log4Net.Tests/MultiThreadTest.config b/test/AWS.Logger.Log4Net.Tests/MultiThreadTest.config index b69d9ae..ed251b3 100644 --- a/test/AWS.Logger.Log4Net.Tests/MultiThreadTest.config +++ b/test/AWS.Logger.Log4Net.Tests/MultiThreadTest.config @@ -3,7 +3,7 @@ - AWSLog4NetGroupLog4NetMultiThreadTest + {LOG_GROUP_NAME} us-west-2 diff --git a/test/AWS.Logger.Log4Net.Tests/OverrideLogStreamName.config b/test/AWS.Logger.Log4Net.Tests/OverrideLogStreamName.config index 967b436..f188288 100644 --- a/test/AWS.Logger.Log4Net.Tests/OverrideLogStreamName.config +++ b/test/AWS.Logger.Log4Net.Tests/OverrideLogStreamName.config @@ -4,7 +4,7 @@ - AWSLog4NetGroupOverrideLogStreamName + {LOG_GROUP_NAME} CustomStreamName us-west-2 Custom diff --git a/test/AWS.Logger.Log4Net.Tests/Properties/AssemblyInfo.cs b/test/AWS.Logger.Log4Net.Tests/Properties/AssemblyInfo.cs index 9fd7691..4a952b8 100644 --- a/test/AWS.Logger.Log4Net.Tests/Properties/AssemblyInfo.cs +++ b/test/AWS.Logger.Log4Net.Tests/Properties/AssemblyInfo.cs @@ -29,3 +29,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] + +[assembly: Xunit.CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/test/AWS.Logger.Log4Net.Tests/TestClass.cs b/test/AWS.Logger.Log4Net.Tests/TestClass.cs index 4c54366..f18d013 100644 --- a/test/AWS.Logger.Log4Net.Tests/TestClass.cs +++ b/test/AWS.Logger.Log4Net.Tests/TestClass.cs @@ -1,6 +1,11 @@ using System; +using System.IO; +using System.Linq; using System.Reflection; +using System.Text; using System.Threading; +using System.Threading.Tasks; +using AWS.Logger.Log4net; using AWS.Logger.TestUtils; using log4net; using log4net.Config; @@ -12,13 +17,18 @@ public class Log4NetTestClass : BaseTestClass { public ILog Logger; - private void GetLog4NetLogger(string fileName, string logName) + private void GetLog4NetLogger(string fileName, string logName, string logGroupName) { // Create logger var repositoryAssembly = typeof(Log4NetTestClass).GetTypeInfo().Assembly; var loggerRepository = LogManager.GetRepository(repositoryAssembly); - XmlConfigurator.Configure(loggerRepository, new System.IO.FileInfo(fileName)); - Logger = LogManager.GetLogger(repositoryAssembly, logName); + var fileInfo = new FileInfo(fileName); + var fileContent = File.ReadAllText(fileInfo.FullName); + using (Stream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(fileContent.Replace("{LOG_GROUP_NAME}", logGroupName)))) + { + XmlConfigurator.Configure(loggerRepository, memoryStream); + Logger = LogManager.GetLogger(repositoryAssembly, logName); + } } public Log4NetTestClass(TestFixture testFixture) : base(testFixture) @@ -27,24 +37,27 @@ public Log4NetTestClass(TestFixture testFixture) : base(testFixture) #region Test Cases [Fact] - public void Log4Net() + public async Task Log4Net() { - GetLog4NetLogger("log4net.config","Log4Net"); - SimpleLoggingTest("AWSLog4NetGroupLog4Net"); + var logGroupName = $"AWSLog4NetGroupLog4Net{Guid.NewGuid().ToString().Split('-').Last()}"; + GetLog4NetLogger("log4net.config","Log4Net", logGroupName); + await SimpleLoggingTest(logGroupName); } [Fact] - public void MultiThreadTest() + public async Task MultiThreadTest() { - GetLog4NetLogger("MultiThreadTest.config", "MultiThreadTest"); - MultiThreadTestGroup("AWSLog4NetGroupLog4NetMultiThreadTest"); + var logGroupName = $"AWSLog4NetGroupLog4NetMultiThreadTest{Guid.NewGuid().ToString().Split('-').Last()}"; + GetLog4NetLogger("MultiThreadTest.config", "MultiThreadTest", logGroupName); + await MultiThreadTestGroup(logGroupName); } [Fact] - public void MultiThreadBufferFullTest() + public async Task MultiThreadBufferFullTest() { - GetLog4NetLogger("MultiThreadBufferFullTest.config", "MultiThreadBufferFullTest"); - MultiThreadBufferFullTestGroup("AWSLog4NetGroupMultiThreadBufferFullTest"); + var logGroupName = $"AWSLog4NetGroupMultiThreadBufferFullTest{Guid.NewGuid().ToString().Split('-').Last()}"; + GetLog4NetLogger("MultiThreadBufferFullTest.config", "MultiThreadBufferFullTest", logGroupName); + await MultiThreadBufferFullTestGroup(logGroupName); } /// @@ -52,17 +65,18 @@ public void MultiThreadBufferFullTest() /// when an override log stream name is provided /// [Fact] - public void CustomLogStreamNameTest() + public async Task CustomLogStreamNameTest() { - GetLog4NetLogger("OverrideLogStreamName.config", "OverrideLogStreamName"); - MultiThreadTestGroup("AWSLog4NetGroupOverrideLogStreamName"); + var logGroupName = $"AWSLog4NetGroupMultiThreadBufferFullTest{Guid.NewGuid().ToString().Split('-').Last()}"; + GetLog4NetLogger("OverrideLogStreamName.config", "OverrideLogStreamName", logGroupName); + await MultiThreadTestGroup(logGroupName); } protected override void LogMessages(int count) { for (int i = 0; i < count-1; i++) { - Logger.Debug(string.Format("Test logging message {0} Log4Net, Thread Id:{1}", i, Thread.CurrentThread.ManagedThreadId)); + Logger.Debug(string.Format("Test logging message {0} Log4Net, Thread Id:{1}", i, Environment.CurrentManagedThreadId)); } Logger.Debug(LASTMESSAGE); } diff --git a/test/AWS.Logger.Log4Net.Tests/log4net.config b/test/AWS.Logger.Log4Net.Tests/log4net.config index 18456a0..265f88c 100644 --- a/test/AWS.Logger.Log4Net.Tests/log4net.config +++ b/test/AWS.Logger.Log4Net.Tests/log4net.config @@ -4,7 +4,7 @@ - AWSLog4NetGroupLog4Net + {LOG_GROUP_NAME} us-west-2 Custom CustomPrefix diff --git a/test/AWS.Logger.NLog.Tests/AWSNLogGroupEventSizeExceededTest.config b/test/AWS.Logger.NLog.Tests/AWSNLogGroupEventSizeExceededTest.config index 9f1124f..e202b72 100644 --- a/test/AWS.Logger.NLog.Tests/AWSNLogGroupEventSizeExceededTest.config +++ b/test/AWS.Logger.NLog.Tests/AWSNLogGroupEventSizeExceededTest.config @@ -5,10 +5,10 @@ - + - + \ No newline at end of file diff --git a/test/AWS.Logger.NLog.Tests/AWSNLogGroupMultiThreadBufferFullTest.config b/test/AWS.Logger.NLog.Tests/AWSNLogGroupMultiThreadBufferFullTest.config index fcb503f..83cc079 100644 --- a/test/AWS.Logger.NLog.Tests/AWSNLogGroupMultiThreadBufferFullTest.config +++ b/test/AWS.Logger.NLog.Tests/AWSNLogGroupMultiThreadBufferFullTest.config @@ -5,10 +5,10 @@ - + - + \ No newline at end of file diff --git a/test/AWS.Logger.NLog.Tests/AWSNLogGroupMultiThreadTest.config b/test/AWS.Logger.NLog.Tests/AWSNLogGroupMultiThreadTest.config index a2ddac2..46ebb69 100644 --- a/test/AWS.Logger.NLog.Tests/AWSNLogGroupMultiThreadTest.config +++ b/test/AWS.Logger.NLog.Tests/AWSNLogGroupMultiThreadTest.config @@ -5,10 +5,10 @@ - + - + \ No newline at end of file diff --git a/test/AWS.Logger.NLog.Tests/AWSNLogOverrideLogStreamName.config b/test/AWS.Logger.NLog.Tests/AWSNLogOverrideLogStreamName.config index bbac65b..dfff0bd 100644 --- a/test/AWS.Logger.NLog.Tests/AWSNLogOverrideLogStreamName.config +++ b/test/AWS.Logger.NLog.Tests/AWSNLogOverrideLogStreamName.config @@ -5,10 +5,10 @@ - + - + \ No newline at end of file diff --git a/test/AWS.Logger.NLog.Tests/Regular.config b/test/AWS.Logger.NLog.Tests/Regular.config index 1312b8a..33cd126 100644 --- a/test/AWS.Logger.NLog.Tests/Regular.config +++ b/test/AWS.Logger.NLog.Tests/Regular.config @@ -5,10 +5,10 @@ - + - + \ No newline at end of file diff --git a/test/AWS.Logger.NLog.Tests/TestClass.cs b/test/AWS.Logger.NLog.Tests/TestClass.cs index 742f8fc..c7032a6 100644 --- a/test/AWS.Logger.NLog.Tests/TestClass.cs +++ b/test/AWS.Logger.NLog.Tests/TestClass.cs @@ -1,6 +1,10 @@ using System; +using System.IO; +using System.Linq; +using System.Text; using System.Threading; using System.Threading.Tasks; +using System.Xml; using Amazon.CloudWatchLogs.Model; using AWS.Logger.TestUtils; using NLog; @@ -15,9 +19,15 @@ public class NLogTestClass: BaseTestClass { public NLog.Logger Logger; - private void CreateLoggerFromConfiguration(string configFileName) + private void CreateLoggerFromConfiguration(string configFileName, string logGroupName) { - LogManager.Configuration = new XmlLoggingConfiguration(configFileName); + var fileInfo = new FileInfo(configFileName); + var fileContent = File.ReadAllText(fileInfo.FullName); + using (Stream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(fileContent.Replace("{LOG_GROUP_NAME}", logGroupName)))) + using (XmlReader reader = XmlReader.Create(memoryStream)) + { + LogManager.Configuration = new XmlLoggingConfiguration(reader, configFileName); + } } public NLogTestClass(TestFixture testFixture) : base(testFixture) @@ -26,27 +36,30 @@ public NLogTestClass(TestFixture testFixture) : base(testFixture) #region Test Cases [Fact] - public void Nlog() + public async Task Nlog() { - CreateLoggerFromConfiguration("Regular.config"); + var logGroupName = $"AWSNLogGroup{Guid.NewGuid().ToString().Split('-').Last()}"; + CreateLoggerFromConfiguration("Regular.config", logGroupName); Logger = LogManager.GetLogger("loggerRegular"); - SimpleLoggingTest("AWSNLogGroup"); + await SimpleLoggingTest(logGroupName); } [Fact] - public void MultiThreadTest() + public async Task MultiThreadTest() { - CreateLoggerFromConfiguration("AWSNLogGroupMultiThreadTest.config"); + var logGroupName = $"AWSNLogGroupMultiThreadTest{Guid.NewGuid().ToString().Split('-').Last()}"; + CreateLoggerFromConfiguration("AWSNLogGroupMultiThreadTest.config", logGroupName); Logger = LogManager.GetLogger("loggerMultiThread"); - MultiThreadTestGroup("AWSNLogGroupMultiThreadTest"); + await MultiThreadTestGroup(logGroupName); } [Fact] - public void MultiThreadBufferFullTest() + public async Task MultiThreadBufferFullTest() { - CreateLoggerFromConfiguration("AWSNLogGroupMultiThreadBufferFullTest.config"); + var logGroupName = $"AWSNLogGroupMultiThreadBufferFullTest{Guid.NewGuid().ToString().Split('-').Last()}"; + CreateLoggerFromConfiguration("AWSNLogGroupMultiThreadBufferFullTest.config", logGroupName); Logger = LogManager.GetLogger("loggerMultiThreadBufferFull"); - MultiThreadBufferFullTestGroup("AWSNLogGroupMultiThreadBufferFullTest"); + await MultiThreadBufferFullTestGroup(logGroupName); } /// @@ -54,19 +67,20 @@ public void MultiThreadBufferFullTest() /// when an override log stream name is provided /// [Fact] - public void CustomLogStreamNameTest() + public async Task CustomLogStreamNameTest() { - CreateLoggerFromConfiguration("AWSNLogOverrideLogStreamName.config"); + var logGroupName = $"AWSNLogOverrideLogStreamName{Guid.NewGuid().ToString().Split('-').Last()}"; + CreateLoggerFromConfiguration("AWSNLogOverrideLogStreamName.config", logGroupName); Logger = LogManager.GetLogger("overrideLogStreamName"); - MultiThreadTestGroup("AWSNLogOverrideLogStreamName", "CustomStreamName"); + await MultiThreadTestGroup(logGroupName, "CustomStreamName"); } [Fact] public async Task MessageHasToBeBrokenUp() { - string logGroupName = "AWSNLogGroupEventSizeExceededTest"; + var logGroupName = $"AWSNLogGroupEventSizeExceededTest{Guid.NewGuid().ToString().Split('-').Last()}"; - CreateLoggerFromConfiguration("AWSNLogGroupEventSizeExceededTest.config"); + CreateLoggerFromConfiguration("AWSNLogGroupEventSizeExceededTest.config", logGroupName); Logger = LogManager.GetLogger("loggerRegularEventSizeExceeded"); // This will get broken up into 3 CloudWatch Log messages @@ -74,10 +88,10 @@ public async Task MessageHasToBeBrokenUp() Logger.Debug(LASTMESSAGE); GetLogEventsResponse getLogEventsResponse = new GetLogEventsResponse(); - if (NotifyLoggingCompleted(logGroupName, "LASTMESSAGE")) + if (await NotifyLoggingCompleted(logGroupName, "LASTMESSAGE")) { DescribeLogStreamsResponse describeLogstreamsResponse = - await Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest + await _testFixture.Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest { Descending = true, LogGroupName = logGroupName, @@ -86,7 +100,7 @@ await Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest // Wait for the large messages to propagate Thread.Sleep(5000); - getLogEventsResponse = await Client.GetLogEventsAsync(new GetLogEventsRequest + getLogEventsResponse = await _testFixture.Client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName @@ -100,7 +114,7 @@ protected override void LogMessages(int count) { for (int i = 0; i < count-1; i++) { - Logger.Debug(string.Format("Test logging message {0} NLog, Thread Id:{1}", i, Thread.CurrentThread.ManagedThreadId)); + Logger.Debug(string.Format("Test logging message {0} NLog, Thread Id:{1}", i, Environment.CurrentManagedThreadId)); } Logger.Debug(LASTMESSAGE); } diff --git a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroup.json b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroup.json index 956c3c4..e2b16b7 100644 --- a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroup.json +++ b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroup.json @@ -2,7 +2,7 @@ "Serilog": { "Using": [ "AWS.Logger.SeriLog" ], "MinimumLevel": "Debug", - "LogGroup": "AWSSeriLogGroup", + "LogGroup": "{LOG_GROUP_NAME}", "Region": "us-west-2", "LogStreamNameSuffix": "Custom", "LogStreamNamePrefix": "CustomPrefix", diff --git a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupMultiThreadBufferFullTest.json b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupMultiThreadBufferFullTest.json index dcf0cd9..be82619 100644 --- a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupMultiThreadBufferFullTest.json +++ b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupMultiThreadBufferFullTest.json @@ -2,7 +2,7 @@ "Serilog": { "Using": [ "AWS.Logger.SeriLog" ], "MinimumLevel": "Debug", - "LogGroup": "AWSSeriLogGroupMultiThreadBufferFullTest", + "LogGroup": "{LOG_GROUP_NAME}", "Region": "us-west-2", "LogStreamNameSuffix": "Custom", "MaxQueuedMessages": "100", diff --git a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupMultiThreadTest.json b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupMultiThreadTest.json index bef5540..e6a3dfb 100644 --- a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupMultiThreadTest.json +++ b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupMultiThreadTest.json @@ -2,7 +2,7 @@ "Serilog": { "Using": [ "AWS.Logger.SeriLog" ], "MinimumLevel": "Debug", - "LogGroup": "AWSSeriLogGroupMultiThreadTest", + "LogGroup": "{LOG_GROUP_NAME}", "Region": "us-west-2", "LogStreamNameSuffix": "Custom", "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ] diff --git a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupOverrideLogStreamName.json b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupOverrideLogStreamName.json index db09be4..bed2453 100644 --- a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupOverrideLogStreamName.json +++ b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupOverrideLogStreamName.json @@ -2,7 +2,7 @@ "Serilog": { "Using": [ "AWS.Logger.SeriLog" ], "MinimumLevel": "Debug", - "LogGroup": "AWSSeriLogGroupOverrideLogStreamName", + "LogGroup": "{LOG_GROUP_NAME}", "Region": "us-west-2", "LogStreamName": "CustomLogStream", "LogStreamNameSuffix": "Custom", diff --git a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupRestrictedToMinimumLevel.json b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupRestrictedToMinimumLevel.json index 466e7bd..4b5a1eb 100644 --- a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupRestrictedToMinimumLevel.json +++ b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupRestrictedToMinimumLevel.json @@ -2,7 +2,7 @@ "Serilog": { "Using": [ "AWS.Logger.SeriLog" ], "MinimumLevel": "Debug", - "LogGroup": "AWSSeriLogGroupRestrictedtoMinimumLevel", + "LogGroup": "{LOG_GROUP_NAME}", "Region": "us-west-2", "LogStreamNameSuffix": "Custom", "LogStreamNamePrefix": "CustomPrefix", diff --git a/test/AWS.Logger.SeriLog.Tests/SeriLoggerTestClass.cs b/test/AWS.Logger.SeriLog.Tests/SeriLoggerTestClass.cs index 51abedf..84fd98f 100644 --- a/test/AWS.Logger.SeriLog.Tests/SeriLoggerTestClass.cs +++ b/test/AWS.Logger.SeriLog.Tests/SeriLoggerTestClass.cs @@ -1,8 +1,12 @@ using System; -using System.Threading; -using Amazon.CloudWatchLogs.Model; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Amazon.CloudWatchLogs.Model; using AWS.Logger.SeriLog; -using AWS.Logger.TestUtils; +using AWS.Logger.TestUtils; using Microsoft.Extensions.Configuration; using Serilog; using Xunit; @@ -18,98 +22,113 @@ public SeriLoggerTestClass(TestFixture testFixture) : base(testFixture) { } - private void CreateLoggerFromConfiguration(string configurationFile) + private void CreateLoggerFromConfiguration(string configurationFile, string logGroupName) { - var configuration = new ConfigurationBuilder() - .AddJsonFile(configurationFile) - .Build(); - - Log.Logger = new LoggerConfiguration(). - ReadFrom.Configuration(configuration). - WriteTo.AWSSeriLog( configuration).CreateLogger(); + var fileInfo = new FileInfo(configurationFile); + var fileContent = File.ReadAllText(fileInfo.FullName); + using (Stream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(fileContent.Replace("{LOG_GROUP_NAME}", logGroupName)))) + { + var configuration = new ConfigurationBuilder() + .AddJsonStream(memoryStream) + .Build(); + + Log.Logger = new LoggerConfiguration(). + ReadFrom.Configuration(configuration). + WriteTo.AWSSeriLog(configuration).CreateLogger(); + } } #region Test Cases [Fact] - public void SeriLogger() + public async Task SeriLogger() { - CreateLoggerFromConfiguration("AWSSeriLogGroup.json"); - SimpleLoggingTest("AWSSeriLogGroup"); + var logGroupName = $"AWSSeriLogGroup{Guid.NewGuid().ToString().Split('-').Last()}"; + CreateLoggerFromConfiguration("AWSSeriLogGroup.json", logGroupName); + await SimpleLoggingTest(logGroupName); } [Fact] - public void MultiThreadTest() + public async Task MultiThreadTest() { - CreateLoggerFromConfiguration("AWSSeriLogGroupMultiThreadTest.json"); - MultiThreadTestGroup("AWSSeriLogGroupMultiThreadTest"); + var logGroupName = $"AWSSeriLogGroup{Guid.NewGuid().ToString().Split('-').Last()}"; + CreateLoggerFromConfiguration("AWSSeriLogGroupMultiThreadTest.json", logGroupName); + await MultiThreadTestGroup(logGroupName); } [Fact] - public void MultiThreadBufferFullTest() + public async Task MultiThreadBufferFullTest() { - CreateLoggerFromConfiguration("AWSSeriLogGroupMultiThreadBufferFullTest.json"); - MultiThreadBufferFullTestGroup("AWSSeriLogGroupMultiThreadBufferFullTest"); - } - - /// - /// Verifies that multiple producers can log to the same log stream - /// when an override log stream name is provided - /// + var logGroupName = $"AWSSeriLogGroup{Guid.NewGuid().ToString().Split('-').Last()}"; + CreateLoggerFromConfiguration("AWSSeriLogGroupMultiThreadBufferFullTest.json", logGroupName); + await MultiThreadBufferFullTestGroup(logGroupName); + } + + /// + /// Verifies that multiple producers can log to the same log stream + /// when an override log stream name is provided + /// [Fact] - public void CustomLogStreamNameTest() + public async Task CustomLogStreamNameTest() { - CreateLoggerFromConfiguration("AWSSeriLogGroupOverrideLogStreamName.json"); - MultiThreadTestGroup("AWSSeriLogGroupOverrideLogStreamName", "CustomLogStream"); + var logGroupName = $"AWSSeriLogGroup{Guid.NewGuid().ToString().Split('-').Last()}"; + CreateLoggerFromConfiguration("AWSSeriLogGroupOverrideLogStreamName.json", logGroupName); + await MultiThreadTestGroup(logGroupName, "CustomLogStream"); } [Fact] - public void RestrictedToMinimumLevelTest() + public async Task RestrictedToMinimumLevelTest() + { + var logGroupName = $"AWSSeriLogGroupRestrictedtoMinimumLevel{Guid.NewGuid().ToString().Split('-').Last()}"; + + var fileInfo = new FileInfo("AWSSeriLogGroupRestrictedToMinimumLevel.json"); + var fileContent = File.ReadAllText(fileInfo.FullName); + using (Stream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(fileContent.Replace("{LOG_GROUP_NAME}", logGroupName)))) + { + // Create logger + var configuration = new ConfigurationBuilder() + .AddJsonStream(memoryStream) + .Build(); + + Log.Logger = new LoggerConfiguration(). + ReadFrom.Configuration(configuration).CreateLogger(); + } + + await ExecuteRestrictedToMinimumLevelTest(logGroupName); + } + + private async Task ExecuteRestrictedToMinimumLevelTest(string logGroupName) { - string logGroupName = "AWSSeriLogGroupRestrictedtoMinimumLevel"; - // Create logger - var configuration = new ConfigurationBuilder() - .AddJsonFile("AWSSeriLogGroupRestrictedToMinimumLevel.json") - .Build(); - - Log.Logger = new LoggerConfiguration(). - ReadFrom.Configuration(configuration).CreateLogger(); - - ExecuteRestrictedToMinimumLevelTest(logGroupName); - } - - private void ExecuteRestrictedToMinimumLevelTest(string logGroupName) - { - // Log 4 Debug messages + // Log 4 Debug messages for (int i = 0; i < 3; i++) { - Log.Debug(string.Format("Test logging message {0} SeriLog, Thread Id:{1}", i, Thread.CurrentThread.ManagedThreadId)); + Log.Debug(string.Format("Test logging message {0} SeriLog, Thread Id:{1}", i, Environment.CurrentManagedThreadId)); } // Log 5 Error messages for (int i = 0; i < 5; i++) { - Log.Error(string.Format("Test logging message {0} SeriLog, Thread Id:{1}", i, Thread.CurrentThread.ManagedThreadId)); + Log.Error(string.Format("Test logging message {0} SeriLog, Thread Id:{1}", i, Environment.CurrentManagedThreadId)); } Log.Error(LASTMESSAGE); GetLogEventsResponse getLogEventsResponse = new GetLogEventsResponse(); - if (NotifyLoggingCompleted("AWSSeriLogGroupRestrictedtoMinimumLevel", "LASTMESSAGE")) + if (await NotifyLoggingCompleted(logGroupName, "LASTMESSAGE")) { - DescribeLogStreamsResponse describeLogstreamsResponse = Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest - { - Descending = true, - LogGroupName = logGroupName, - OrderBy = "LastEventTime" - }).Result; - - getLogEventsResponse = Client.GetLogEventsAsync(new GetLogEventsRequest + DescribeLogStreamsResponse describeLogstreamsResponse = await _testFixture.Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest + { + Descending = true, + LogGroupName = logGroupName, + OrderBy = "LastEventTime" + }); + + getLogEventsResponse = await _testFixture.Client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName - }).Result; + }); } - Assert.Equal(6, getLogEventsResponse.Events.Count); - } - + Assert.Equal(6, getLogEventsResponse.Events.Count); + } + /// /// This method posts debug messages onto CloudWatchLogs. /// @@ -118,7 +137,7 @@ protected override void LogMessages(int count) { for (int i = 0; i < count - 1; i++) { - Log.Debug(string.Format("Test logging message {0} SeriLog, Thread Id:{1}", i, Thread.CurrentThread.ManagedThreadId)); + Log.Debug(string.Format("Test logging message {0} SeriLog, Thread Id:{1}", i, Environment.CurrentManagedThreadId)); } Log.Debug(LASTMESSAGE); } diff --git a/test/AWS.Logger.TestUtils/BaseTestClass.cs b/test/AWS.Logger.TestUtils/BaseTestClass.cs index 1c30223..99c3cc0 100644 --- a/test/AWS.Logger.TestUtils/BaseTestClass.cs +++ b/test/AWS.Logger.TestUtils/BaseTestClass.cs @@ -1,11 +1,8 @@ -using Amazon.CloudWatchLogs; -using Amazon.CloudWatchLogs.Model; +using Amazon.CloudWatchLogs.Model; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; -using System.Text; -using System.Threading; using System.Threading.Tasks; using Xunit; @@ -21,41 +18,39 @@ public abstract class BaseTestClass : IClassFixture public const string CUSTOMSTREAMSUFFIX = "Custom"; public const string CUSTOMSTREAMPREFIX = "CustomPrefix"; public TestFixture _testFixture; - public AmazonCloudWatchLogsClient Client; public BaseTestClass(TestFixture testFixture) { _testFixture = testFixture; - Client = new AmazonCloudWatchLogsClient(Amazon.RegionEndpoint.USWest2); } - protected bool NotifyLoggingCompleted(string logGroupName, string filterPattern) + protected async Task NotifyLoggingCompleted(string logGroupName, string filterPattern) { Stopwatch timer = new Stopwatch(); timer.Start(); while (timer.Elapsed < TimeSpan.FromSeconds(THREAD_WAITTIME)) { - Thread.Sleep(500); - if (FilterPatternExists(logGroupName, filterPattern)) + await Task.Delay(500); + if (await FilterPatternExists(logGroupName, filterPattern)) { break; } } - return FilterPatternExists(logGroupName, filterPattern); + return await FilterPatternExists(logGroupName, filterPattern); } - protected bool FilterPatternExists(string logGroupName, string filterPattern) + protected async Task FilterPatternExists(string logGroupName, string filterPattern) { DescribeLogStreamsResponse describeLogstreamsResponse; try { - describeLogstreamsResponse = Client. + describeLogstreamsResponse = await _testFixture.Client. DescribeLogStreamsAsync(new DescribeLogStreamsRequest { Descending = true, LogGroupName = logGroupName, OrderBy = "LastEventTime" - }).Result; + }); } catch (Exception) { return false; @@ -63,15 +58,13 @@ protected bool FilterPatternExists(string logGroupName, string filterPattern) if (describeLogstreamsResponse.LogStreams.Count > 0) { - List logStreamNames = new List(); - logStreamNames.Add(describeLogstreamsResponse.LogStreams[0].LogStreamName); - FilterLogEventsResponse filterLogEventsResponse = Client. + FilterLogEventsResponse filterLogEventsResponse = await _testFixture.Client. FilterLogEventsAsync(new FilterLogEventsRequest { FilterPattern = filterPattern, LogGroupName = logGroupName, - LogStreamNames = logStreamNames - }).Result; + LogStreamNames = new List { describeLogstreamsResponse.LogStreams[0].LogStreamName } + }); return filterLogEventsResponse.Events.Count > 0; } @@ -83,33 +76,32 @@ protected bool FilterPatternExists(string logGroupName, string filterPattern) protected abstract void LogMessages(int count); - protected void SimpleLoggingTest(string logGroupName) + protected async Task SimpleLoggingTest(string logGroupName) { LogMessages(SIMPLELOGTEST_COUNT); GetLogEventsResponse getLogEventsResponse = new GetLogEventsResponse(); - if (NotifyLoggingCompleted(logGroupName, "LASTMESSAGE")) + if (await NotifyLoggingCompleted(logGroupName, "LASTMESSAGE")) { - DescribeLogStreamsResponse describeLogstreamsResponse = - Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest - { - Descending = true, - LogGroupName = logGroupName, - OrderBy = "LastEventTime" - }).Result; - - - getLogEventsResponse = Client.GetLogEventsAsync(new GetLogEventsRequest + var describeLogstreamsResponse = await _testFixture.Client.DescribeLogStreamsAsync( + new DescribeLogStreamsRequest + { + Descending = true, + LogGroupName = logGroupName, + OrderBy = "LastEventTime" + }); + var logStream = describeLogstreamsResponse.LogStreams.First(); + getLogEventsResponse = await _testFixture.Client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, - LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName - }).Result; + LogStreamName = logStream.LogStreamName + }); - var customStreamSuffix = describeLogstreamsResponse.LogStreams[0].LogStreamName.Split('-').Last().Trim(); + var customStreamSuffix = logStream.LogStreamName.Split('-').Last().Trim(); Assert.Equal(CUSTOMSTREAMSUFFIX, customStreamSuffix); - var customStreamPrefix = describeLogstreamsResponse.LogStreams[0].LogStreamName.Split('-').First().Trim(); + var customStreamPrefix = logStream.LogStreamName.Split('-').First().Trim(); Assert.Equal(CUSTOMSTREAMPREFIX, customStreamPrefix); } - Assert.Equal(SIMPLELOGTEST_COUNT, getLogEventsResponse.Events.Count()); + Assert.Equal(SIMPLELOGTEST_COUNT, getLogEventsResponse.Events.Count); _testFixture.LogGroupNameList.Add(logGroupName); @@ -125,7 +117,7 @@ protected void SimpleLoggingTest(string logGroupName) /// May be used when overriding the stream name as opposed to using the /// generated name based on the prefix and suffix. /// - protected void MultiThreadTestGroup(string logGroupName, string expectedLogStreamName = "") + protected async Task MultiThreadTestGroup(string logGroupName, string expectedLogStreamName = "") { // This allows the fixture to delete the group at the end, // whether or not the test passes @@ -137,22 +129,21 @@ protected void MultiThreadTestGroup(string logGroupName, string expectedLogStrea var totalCount = 0; for (int i = 0; i < THREAD_COUNT; i++) { - tasks.Add(Task.Factory.StartNew(() => LogMessages(count))); + tasks.Add(Task.Run(() => LogMessages(count))); totalCount = totalCount + count; } - - Task.WaitAll(tasks.ToArray(), TimeSpan.FromSeconds(THREAD_WAITTIME)); + await Task.WhenAll(tasks.ToArray()); int testCount = -1; - if (NotifyLoggingCompleted(logGroupName, "LASTMESSAGE")) + if (await NotifyLoggingCompleted(logGroupName, "LASTMESSAGE")) { DescribeLogStreamsResponse describeLogstreamsResponse = - Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest + await _testFixture.Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest { Descending = true, LogGroupName = logGroupName, OrderBy = "LastEventTime" - }).Result; + }); if (describeLogstreamsResponse.LogStreams.Count > 0) { @@ -164,19 +155,16 @@ protected void MultiThreadTestGroup(string logGroupName, string expectedLogStrea Assert.Equal(expectedLogStreamName, describeLogstreamsResponse.LogStreams[0].LogStreamName); } testCount = 0; - foreach (var logStream in describeLogstreamsResponse.LogStreams) - { - GetLogEventsResponse getLogEventsResponse = - Client.GetLogEventsAsync(new GetLogEventsRequest + GetLogEventsResponse getLogEventsResponse = + await _testFixture.Client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, - LogStreamName = logStream.LogStreamName - }).Result; + LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName + }); - if (getLogEventsResponse != null) - { - testCount += getLogEventsResponse.Events.Count(); - } + if (getLogEventsResponse != null) + { + testCount += getLogEventsResponse.Events.Count; } } } @@ -184,7 +172,7 @@ protected void MultiThreadTestGroup(string logGroupName, string expectedLogStrea Assert.Equal(totalCount, testCount); } - protected void MultiThreadBufferFullTestGroup(string logGroupName) + protected async Task MultiThreadBufferFullTestGroup(string logGroupName) { var tasks = new List(); var streamNames = new List(); @@ -192,11 +180,11 @@ protected void MultiThreadBufferFullTestGroup(string logGroupName) var totalCount = 0; for (int i = 0; i < THREAD_COUNT; i++) { - tasks.Add(Task.Factory.StartNew(() => LogMessages(count))); + tasks.Add(Task.Run(() => LogMessages(count))); totalCount = totalCount + count; } - Task.WaitAll(tasks.ToArray(), TimeSpan.FromSeconds(THREAD_WAITTIME)); - Assert.True(NotifyLoggingCompleted(logGroupName, "maximum")); + await Task.WhenAll(tasks.ToArray()); + Assert.True(await NotifyLoggingCompleted(logGroupName, "maximum")); _testFixture.LogGroupNameList.Add(logGroupName); } diff --git a/test/AWS.Logger.TestUtils/TestFixture.cs b/test/AWS.Logger.TestUtils/TestFixture.cs index e0f1f9c..aa49c23 100644 --- a/test/AWS.Logger.TestUtils/TestFixture.cs +++ b/test/AWS.Logger.TestUtils/TestFixture.cs @@ -1,12 +1,9 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; -using Amazon; using Amazon.CloudWatchLogs; using Amazon.CloudWatchLogs.Model; -using System.Threading; -using System.Diagnostics; +using Xunit; namespace AWS.Logger.TestUtils { @@ -15,45 +12,46 @@ namespace AWS.Logger.TestUtils // In the Build tab select "Produce outputs on build". //TestClass to dispose test generated LogGroups. - public class TestFixture : IDisposable + public class TestFixture : IAsyncLifetime { public List LogGroupNameList; + public AmazonCloudWatchLogsClient Client; - public TestFixture() + public Task InitializeAsync() { - AmazonCloudWatchLogsClient Client = - new AmazonCloudWatchLogsClient(Amazon.RegionEndpoint.USWest2); + Client = new AmazonCloudWatchLogsClient(Amazon.RegionEndpoint.USWest2); LogGroupNameList = new List(); - } - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); + return Task.CompletedTask; } - protected virtual void Dispose(bool disposing) + public async Task DisposeAsync() { - AmazonCloudWatchLogsClient Client = - new AmazonCloudWatchLogsClient(Amazon.RegionEndpoint.USWest2); foreach (var logGroupName in LogGroupNameList) { - if (!(string.IsNullOrEmpty(logGroupName))) + try { - DescribeLogGroupsResponse describeLogGroupsResponse = Client.DescribeLogGroupsAsync( - new DescribeLogGroupsRequest + if (!(string.IsNullOrEmpty(logGroupName))) { - LogGroupNamePrefix = logGroupName - }).Result; + var describeLogGroupsResponse = await Client.DescribeLogGroupsAsync( + new DescribeLogGroupsRequest + { + LogGroupNamePrefix = logGroupName + }); - if (!(string.IsNullOrEmpty(describeLogGroupsResponse.LogGroups[0].LogGroupName))) - { - var response = Client.DeleteLogGroupAsync(new DeleteLogGroupRequest + foreach (var logGroup in describeLogGroupsResponse.LogGroups) { - LogGroupName = logGroupName - }).Result; + if (!(string.IsNullOrEmpty(logGroup.LogGroupName))) + { + var response = await Client.DeleteLogGroupAsync(new DeleteLogGroupRequest + { + LogGroupName = logGroup.LogGroupName + }); + } + } } } + catch (Exception) { } } } } From e962cac233c14c0ba958c0f33a05329ea7be814f Mon Sep 17 00:00:00 2001 From: aws-sdk-dotnet-automation Date: Mon, 16 Dec 2024 15:09:18 +0000 Subject: [PATCH 3/4] release_2024-12-16 --- src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj | 4 ++-- src/AWS.Logger.Core/AWS.Logger.Core.csproj | 2 +- src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj | 2 +- src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj | 4 ++-- src/NLog.AWS.Logger/NLog.AWS.Logger.csproj | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj b/src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj index c0fef4e..65dcf7b 100644 --- a/src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj +++ b/src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj @@ -1,4 +1,4 @@ - + netstandard2.0 @@ -22,7 +22,7 @@ True ..\..\public.snk - 3.5.3 + 3.5.4 diff --git a/src/AWS.Logger.Core/AWS.Logger.Core.csproj b/src/AWS.Logger.Core/AWS.Logger.Core.csproj index 73cb9f7..f2b170e 100644 --- a/src/AWS.Logger.Core/AWS.Logger.Core.csproj +++ b/src/AWS.Logger.Core/AWS.Logger.Core.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;net45 diff --git a/src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj b/src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj index a612fab..38afdf5 100644 --- a/src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj +++ b/src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;net45 diff --git a/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj b/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj index 365b8e8..4ef77ff 100644 --- a/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj +++ b/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;net45;net46 @@ -22,7 +22,7 @@ True ..\..\public.snk - 3.4.3 + 3.4.4 diff --git a/src/NLog.AWS.Logger/NLog.AWS.Logger.csproj b/src/NLog.AWS.Logger/NLog.AWS.Logger.csproj index 7197bef..1711323 100644 --- a/src/NLog.AWS.Logger/NLog.AWS.Logger.csproj +++ b/src/NLog.AWS.Logger/NLog.AWS.Logger.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;net45 From 6834d88d30df84d4c94960fa2bb9cdfa823bfb7b Mon Sep 17 00:00:00 2001 From: aws-sdk-dotnet-automation Date: Mon, 16 Dec 2024 15:09:18 +0000 Subject: [PATCH 4/4] Updated changelog --- .autover/autover.json | 50 +++++++++---------- .../f2cd4eda-bee4-4d41-9170-f8fdbe497a13.json | 18 ------- CHANGELOG.md | 7 +++ 3 files changed, 32 insertions(+), 43 deletions(-) delete mode 100644 .autover/changes/f2cd4eda-bee4-4d41-9170-f8fdbe497a13.json diff --git a/.autover/autover.json b/.autover/autover.json index 13aa4d2..863f14d 100644 --- a/.autover/autover.json +++ b/.autover/autover.json @@ -1,27 +1,27 @@ { - "Projects": [ - { - "Name": "AWS.Logger.AspNetCore", - "Path": "src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj" - }, - { - "Name": "AWS.Logger.Core", - "Path": "src/AWS.Logger.Core/AWS.Logger.Core.csproj" - }, - { - "Name": "AWS.Logger.Log4net", - "Path": "src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj" - }, - { - "Name": "AWS.Logger.SeriLog", - "Path": "src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj" - }, - { - "Name": "NLog.AWS.Logger", - "Path": "src/NLog.AWS.Logger/NLog.AWS.Logger.csproj" - } - ], - "UseCommitsForChangelog": false, - "DefaultIncrementType": "Patch", - "ChangeFilesDetermineIncrementType": true + "Projects": [ + { + "Name": "AWS.Logger.AspNetCore", + "Path": "src/AWS.Logger.AspNetCore/AWS.Logger.AspNetCore.csproj" + }, + { + "Name": "AWS.Logger.Core", + "Path": "src/AWS.Logger.Core/AWS.Logger.Core.csproj" + }, + { + "Name": "AWS.Logger.Log4net", + "Path": "src/AWS.Logger.Log4net/AWS.Logger.Log4net.csproj" + }, + { + "Name": "AWS.Logger.SeriLog", + "Path": "src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj" + }, + { + "Name": "NLog.AWS.Logger", + "Path": "src/NLog.AWS.Logger/NLog.AWS.Logger.csproj" + } + ], + "UseCommitsForChangelog": false, + "DefaultIncrementType": "Patch", + "ChangeFilesDetermineIncrementType": true } \ No newline at end of file diff --git a/.autover/changes/f2cd4eda-bee4-4d41-9170-f8fdbe497a13.json b/.autover/changes/f2cd4eda-bee4-4d41-9170-f8fdbe497a13.json deleted file mode 100644 index 8604c4e..0000000 --- a/.autover/changes/f2cd4eda-bee4-4d41-9170-f8fdbe497a13.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "Projects": [ - { - "Name": "AWS.Logger.AspNetCore", - "Type": "Patch", - "ChangelogMessages": [ - "Update package dependencies to address security vulnerabilities" - ] - }, - { - "Name": "AWS.Logger.SeriLog", - "Type": "Patch", - "ChangelogMessages": [ - "Update package dependencies to address security vulnerabilities" - ] - } - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index bfb5a68..2eeb744 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## Release 2024-12-16 + +### AWS.Logger.AspNetCore (3.5.4) +* Update package dependencies to address security vulnerabilities +### AWS.Logger.SeriLog (3.4.4) +* Update package dependencies to address security vulnerabilities + ## Release 2024-05-22 ### AWS.Logger.Core (3.3.3)