diff --git a/AWS.Logger.sln b/AWS.Logger.sln
index 039850f..372288b 100644
--- a/AWS.Logger.sln
+++ b/AWS.Logger.sln
@@ -21,6 +21,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AspNetCore", "AspNetCore",
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Log4net", "Log4net", "{D28DFB15-FA6F-42EE-890C-E6300A187CCA}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Serilog", "Serilog", "{87F72A08-D504-4DB5-91DC-CDD4F8C6B85D}"
+EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWS.Logger.Log4net", "src\AWS.Logger.Log4net\AWS.Logger.Log4net.csproj", "{78312E9B-BC7C-4AF8-9153-DD72BBF4FD36}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NLog.AWS.Logger", "src\NLog.AWS.Logger\NLog.AWS.Logger.csproj", "{5BBF70EA-A239-4A42-B1E6-83ADCC01153B}"
@@ -61,6 +63,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BasicAWSCredentialsConfigur
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebSample", "samples\AspNetCore\WebSample\WebSample.csproj", "{95F48BA5-D01C-47F1-9D66-3A6D122A314E}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SerilogTestCode", "samples\Serilog\SerilogTestCode\SerilogTestCode.csproj", "{72EE670C-BEF1-4319-8F64-209FF12528E2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SerilogTestCodeFromConfig", "samples\Serilog\SerilogTestCodeFromConfig\SerilogTestCodeFromConfig.csproj", "{87B82DF2-003B-4A83-AA44-5420714D6C70}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SerilogTestCodeFromConfigRestrictedToMinimumLevel", "samples\Serilog\SerilogTestCodeFromConfigRestrictedToMinimumLevel\SerilogTestCodeFromConfigRestrictedToMinimumLevel.csproj", "{69DE761E-E9E4-4A65-B71E-D23AA4A1AF36}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -147,6 +155,18 @@ Global
{95F48BA5-D01C-47F1-9D66-3A6D122A314E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{95F48BA5-D01C-47F1-9D66-3A6D122A314E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{95F48BA5-D01C-47F1-9D66-3A6D122A314E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {72EE670C-BEF1-4319-8F64-209FF12528E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {72EE670C-BEF1-4319-8F64-209FF12528E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {72EE670C-BEF1-4319-8F64-209FF12528E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {72EE670C-BEF1-4319-8F64-209FF12528E2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {87B82DF2-003B-4A83-AA44-5420714D6C70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {87B82DF2-003B-4A83-AA44-5420714D6C70}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {87B82DF2-003B-4A83-AA44-5420714D6C70}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {87B82DF2-003B-4A83-AA44-5420714D6C70}.Release|Any CPU.Build.0 = Release|Any CPU
+ {69DE761E-E9E4-4A65-B71E-D23AA4A1AF36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {69DE761E-E9E4-4A65-B71E-D23AA4A1AF36}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {69DE761E-E9E4-4A65-B71E-D23AA4A1AF36}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {69DE761E-E9E4-4A65-B71E-D23AA4A1AF36}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -155,6 +175,7 @@ Global
{7A064171-6FA7-44CC-9819-2C383A3195D9} = {2E63B9B6-CE21-41D3-8B54-51454D8FA0BB}
{207FA88A-9F32-45A0-84AC-838383875A55} = {2E63B9B6-CE21-41D3-8B54-51454D8FA0BB}
{D28DFB15-FA6F-42EE-890C-E6300A187CCA} = {2E63B9B6-CE21-41D3-8B54-51454D8FA0BB}
+ {87F72A08-D504-4DB5-91DC-CDD4F8C6B85D} = {2E63B9B6-CE21-41D3-8B54-51454D8FA0BB}
{78312E9B-BC7C-4AF8-9153-DD72BBF4FD36} = {E3018A04-6209-4500-B8F2-706514407F90}
{5BBF70EA-A239-4A42-B1E6-83ADCC01153B} = {E3018A04-6209-4500-B8F2-706514407F90}
{71373EC1-B7CD-41E5-9AEE-2D58269079A2} = {7A064171-6FA7-44CC-9819-2C383A3195D9}
@@ -175,6 +196,9 @@ Global
{916D3A6A-3713-48FB-8978-1440CD02F782} = {E3018A04-6209-4500-B8F2-706514407F90}
{7249C7F3-A0EF-4940-9931-3096C87E009E} = {D28DFB15-FA6F-42EE-890C-E6300A187CCA}
{95F48BA5-D01C-47F1-9D66-3A6D122A314E} = {207FA88A-9F32-45A0-84AC-838383875A55}
+ {72EE670C-BEF1-4319-8F64-209FF12528E2} = {87F72A08-D504-4DB5-91DC-CDD4F8C6B85D}
+ {87B82DF2-003B-4A83-AA44-5420714D6C70} = {87F72A08-D504-4DB5-91DC-CDD4F8C6B85D}
+ {69DE761E-E9E4-4A65-B71E-D23AA4A1AF36} = {87F72A08-D504-4DB5-91DC-CDD4F8C6B85D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {46F50BDA-08A5-4A81-9CA9-F0B732C341A7}
diff --git a/samples/Serilog/SerilogTestCodeFromConfigRestrictedToMinimumLevel/Program.cs b/samples/Serilog/SerilogTestCodeFromConfigRestrictedToMinimumLevel/Program.cs
new file mode 100644
index 0000000..d28bda5
--- /dev/null
+++ b/samples/Serilog/SerilogTestCodeFromConfigRestrictedToMinimumLevel/Program.cs
@@ -0,0 +1,23 @@
+using Serilog;
+using Microsoft.Extensions.Configuration;
+
+namespace SerilogTestCodeFromConfigRestrictedToMinimumLevel
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ // logger configuration reads from appsettings.json
+ var configuration = new ConfigurationBuilder()
+ .AddJsonFile("appsettings.json")
+ .Build();
+
+ var logger = new LoggerConfiguration()
+ .ReadFrom.Configuration(configuration)
+ .CreateLogger();
+
+ logger.Information("This should not log since restrictedToMinimumLevel is Error in appsettings.json!");
+ logger.Error("Hello!");
+ }
+ }
+}
diff --git a/samples/Serilog/SerilogTestCodeFromConfigRestrictedToMinimumLevel/SerilogTestCodeFromConfigRestrictedToMinimumLevel.csproj b/samples/Serilog/SerilogTestCodeFromConfigRestrictedToMinimumLevel/SerilogTestCodeFromConfigRestrictedToMinimumLevel.csproj
new file mode 100644
index 0000000..b26540c
--- /dev/null
+++ b/samples/Serilog/SerilogTestCodeFromConfigRestrictedToMinimumLevel/SerilogTestCodeFromConfigRestrictedToMinimumLevel.csproj
@@ -0,0 +1,21 @@
+
+
+
+ Exe
+ netcoreapp3.1
+
+
+
+
+
+
+
+
+
+
+
+ PreserveNewest
+
+
+
+
diff --git a/samples/Serilog/SerilogTestCodeFromConfigRestrictedToMinimumLevel/appsettings.json b/samples/Serilog/SerilogTestCodeFromConfigRestrictedToMinimumLevel/appsettings.json
new file mode 100644
index 0000000..cc9fcfe
--- /dev/null
+++ b/samples/Serilog/SerilogTestCodeFromConfigRestrictedToMinimumLevel/appsettings.json
@@ -0,0 +1,18 @@
+{
+ "Serilog": {
+ "Using": [
+ "AWS.Logger.SeriLog"
+ ],
+ "LogGroup": "Serilog.ConfigExample",
+ "Region": "us-east-1",
+ "MinimumLevel": "Information",
+ "WriteTo": [
+ {
+ "Name": "AWSSeriLog",
+ "Args": {
+ "restrictedToMinimumLevel": "Error"
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj b/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj
index 8c4d450..3b5d79e 100644
--- a/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj
+++ b/src/AWS.Logger.SeriLog/AWS.Logger.SeriLog.csproj
@@ -21,7 +21,7 @@
True
..\..\awssdk.dll.snk
- 3.1.0
+ 3.1.1
@@ -30,7 +30,7 @@
-
+
diff --git a/src/AWS.Logger.SeriLog/AWSLoggerSeriLogExtension.cs b/src/AWS.Logger.SeriLog/AWSLoggerSeriLogExtension.cs
index 48f73b4..2353c41 100644
--- a/src/AWS.Logger.SeriLog/AWSLoggerSeriLogExtension.cs
+++ b/src/AWS.Logger.SeriLog/AWSLoggerSeriLogExtension.cs
@@ -89,7 +89,7 @@ public static class AWSLoggerSeriLogExtension
{
config.LibraryLogErrors = Boolean.Parse(configuration[LIBRARY_LOG_ERRORS]);
}
- return AWSSeriLog(loggerConfiguration, config, iFormatProvider, textFormatter);
+ return AWSSeriLog(loggerConfiguration, config, iFormatProvider, textFormatter, restrictedToMinimumLevel);
}
///
diff --git a/test/AWS.Logger.SeriLog.Tests/AWS.Logger.SeriLog.Tests.csproj b/test/AWS.Logger.SeriLog.Tests/AWS.Logger.SeriLog.Tests.csproj
index 1f25423..8748547 100644
--- a/test/AWS.Logger.SeriLog.Tests/AWS.Logger.SeriLog.Tests.csproj
+++ b/test/AWS.Logger.SeriLog.Tests/AWS.Logger.SeriLog.Tests.csproj
@@ -11,9 +11,13 @@
+
+
+ PreserveNewest
+
PreserveNewest
@@ -32,8 +36,8 @@
-
-
+
+
diff --git a/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupRestrictedToMinimumLevel.json b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupRestrictedToMinimumLevel.json
new file mode 100644
index 0000000..466e7bd
--- /dev/null
+++ b/test/AWS.Logger.SeriLog.Tests/AWSSeriLogGroupRestrictedToMinimumLevel.json
@@ -0,0 +1,18 @@
+{
+ "Serilog": {
+ "Using": [ "AWS.Logger.SeriLog" ],
+ "MinimumLevel": "Debug",
+ "LogGroup": "AWSSeriLogGroupRestrictedtoMinimumLevel",
+ "Region": "us-west-2",
+ "LogStreamNameSuffix": "Custom",
+ "LogStreamNamePrefix": "CustomPrefix",
+ "WriteTo": [
+ {
+ "Name": "AWSSeriLog",
+ "Args": {
+ "restrictedToMinimumLevel": "Error"
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/test/AWS.Logger.SeriLog.Tests/SeriLoggerTestClass.cs b/test/AWS.Logger.SeriLog.Tests/SeriLoggerTestClass.cs
index 4ff3bca..a6d5d89 100644
--- a/test/AWS.Logger.SeriLog.Tests/SeriLoggerTestClass.cs
+++ b/test/AWS.Logger.SeriLog.Tests/SeriLoggerTestClass.cs
@@ -1,5 +1,6 @@
using System;
using System.Threading;
+using Amazon.CloudWatchLogs.Model;
using AWS.Logger.SeriLog;
using AWS.Logger.TestUtils;
using Microsoft.Extensions.Configuration;
@@ -50,6 +51,54 @@ public void MultiThreadBufferFullTest()
MultiThreadBufferFullTestGroup("AWSSeriLogGroupMultiThreadBufferFullTest");
}
+ [Fact]
+ public void RestrictedToMinimumLevelTest()
+ {
+ 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
+ for (int i = 0; i < 3; i++)
+ {
+ Log.Debug(string.Format("Test logging message {0} SeriLog, Thread Id:{1}", i, Thread.CurrentThread.ManagedThreadId));
+ }
+ // 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(LASTMESSAGE);
+
+ GetLogEventsResponse getLogEventsResponse = new GetLogEventsResponse();
+ if (NotifyLoggingCompleted("AWSSeriLogGroupRestrictedtoMinimumLevel", "LASTMESSAGE"))
+ {
+ DescribeLogStreamsResponse describeLogstreamsResponse = Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest
+ {
+ Descending = true,
+ LogGroupName = logGroupName,
+ OrderBy = "LastEventTime"
+ }).Result;
+
+ getLogEventsResponse = Client.GetLogEventsAsync(new GetLogEventsRequest
+ {
+ LogGroupName = logGroupName,
+ LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName
+ }).Result;
+ }
+ Assert.Equal(6, getLogEventsResponse.Events.Count);
+ }
+
///
/// This method posts debug messages onto CloudWatchLogs.
///