diff --git a/FullAgent.sln b/FullAgent.sln
index 17ffc591b1..ae543447d4 100644
--- a/FullAgent.sln
+++ b/FullAgent.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29613.14
+# Visual Studio Version 17
+VisualStudioVersion = 17.1.32319.34
MinimumVisualStudioVersion = 15.0.26228.04
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "src\Agent\NewRelic\Agent\Core\Core.csproj", "{D6E22195-EE69-4320-B08B-E68229FB69AB}"
EndProject
@@ -201,9 +201,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Home", "src\Agent\NewRelic\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CosmosDb", "src\Agent\NewRelic\Agent\Extensions\Providers\Wrapper\CosmosDb\CosmosDb.csproj", "{E10BF2F9-D5CA-4330-8169-ED30D861697E}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Logging", "src\Agent\NewRelic\Agent\Extensions\Providers\Wrapper\Logging\Logging.csproj", "{E696F7DF-D99F-4BD4-B757-531B5F5ECB36}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MicrosoftExtensionsLogging", "src\Agent\NewRelic\Agent\Extensions\Providers\Wrapper\MicrosoftExtensionsLogging\MicrosoftExtensionsLogging.csproj", "{710C7C7A-CD27-4F94-B2D3-9804BD848D57}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MicrosoftExtensionsLogging", "src\Agent\NewRelic\Agent\Extensions\Providers\Wrapper\MicrosoftExtensionsLogging\MicrosoftExtensionsLogging.csproj", "{710C7C7A-CD27-4F94-B2D3-9804BD848D57}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SerilogLogging", "src\Agent\NewRelic\Agent\Extensions\Providers\Wrapper\SerilogLogging\SerilogLogging.csproj", "{0C3E92D7-F16C-4575-9CBB-EB7349A4C5E2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Log4NetLogging", "src\Agent\NewRelic\Agent\Extensions\Providers\Wrapper\Log4NetLogging\Log4NetLogging.csproj", "{2E6CF650-CB50-453D-830A-D00F0540FC2C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -419,14 +421,18 @@ Global
{E10BF2F9-D5CA-4330-8169-ED30D861697E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E10BF2F9-D5CA-4330-8169-ED30D861697E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E10BF2F9-D5CA-4330-8169-ED30D861697E}.Release|Any CPU.Build.0 = Release|Any CPU
- {E696F7DF-D99F-4BD4-B757-531B5F5ECB36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E696F7DF-D99F-4BD4-B757-531B5F5ECB36}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E696F7DF-D99F-4BD4-B757-531B5F5ECB36}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E696F7DF-D99F-4BD4-B757-531B5F5ECB36}.Release|Any CPU.Build.0 = Release|Any CPU
{710C7C7A-CD27-4F94-B2D3-9804BD848D57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{710C7C7A-CD27-4F94-B2D3-9804BD848D57}.Debug|Any CPU.Build.0 = Debug|Any CPU
{710C7C7A-CD27-4F94-B2D3-9804BD848D57}.Release|Any CPU.ActiveCfg = Release|Any CPU
{710C7C7A-CD27-4F94-B2D3-9804BD848D57}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0C3E92D7-F16C-4575-9CBB-EB7349A4C5E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C3E92D7-F16C-4575-9CBB-EB7349A4C5E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C3E92D7-F16C-4575-9CBB-EB7349A4C5E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0C3E92D7-F16C-4575-9CBB-EB7349A4C5E2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2E6CF650-CB50-453D-830A-D00F0540FC2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2E6CF650-CB50-453D-830A-D00F0540FC2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2E6CF650-CB50-453D-830A-D00F0540FC2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2E6CF650-CB50-453D-830A-D00F0540FC2C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -492,8 +498,9 @@ Global
{E487774C-2805-4642-B173-63D8F2D05D39} = {F617061F-24DF-4C57-8147-84CAB336DD4E}
{5CF47B2E-9370-4FD8-B9BD-0D95D3EA167C} = {E3DAC9C6-AE41-4B37-A253-C621E568590E}
{E10BF2F9-D5CA-4330-8169-ED30D861697E} = {5E86E10A-C38F-48CB-ADE9-67B22BB2F50A}
- {E696F7DF-D99F-4BD4-B757-531B5F5ECB36} = {5E86E10A-C38F-48CB-ADE9-67B22BB2F50A}
{710C7C7A-CD27-4F94-B2D3-9804BD848D57} = {5E86E10A-C38F-48CB-ADE9-67B22BB2F50A}
+ {0C3E92D7-F16C-4575-9CBB-EB7349A4C5E2} = {5E86E10A-C38F-48CB-ADE9-67B22BB2F50A}
+ {2E6CF650-CB50-453D-830A-D00F0540FC2C} = {5E86E10A-C38F-48CB-ADE9-67B22BB2F50A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.2\lib\NET35
diff --git a/src/Agent/MsiInstaller/Installer/Product.wxs b/src/Agent/MsiInstaller/Installer/Product.wxs
index cda000b967..bf8c06cf75 100644
--- a/src/Agent/MsiInstaller/Installer/Product.wxs
+++ b/src/Agent/MsiInstaller/Installer/Product.wxs
@@ -454,8 +454,11 @@ SPDX-License-Identifier: Apache-2.0
-
-
+
+
+
+
+
@@ -492,12 +495,15 @@ SPDX-License-Identifier: Apache-2.0
-
-
+
+
+
+
+
@@ -585,8 +591,11 @@ SPDX-License-Identifier: Apache-2.0
-
-
+
+
+
+
+
@@ -612,12 +621,15 @@ SPDX-License-Identifier: Apache-2.0
-
-
+
+
+
+
+
diff --git a/src/Agent/NewRelic/Agent/Core/Utilities/ExtensionsLoader.cs b/src/Agent/NewRelic/Agent/Core/Utilities/ExtensionsLoader.cs
index 1e68de823c..b4c9da350d 100644
--- a/src/Agent/NewRelic/Agent/Core/Utilities/ExtensionsLoader.cs
+++ b/src/Agent/NewRelic/Agent/Core/Utilities/ExtensionsLoader.cs
@@ -62,6 +62,10 @@ public static void Initialize(string installPathExtensionsDirectory)
{ "OpenConnectionTracer", Path.Combine(_installPathExtensionsDirectory, "NewRelic.Providers.Wrapper.Sql.dll") },
{ "OpenConnectionWrapper", Path.Combine(_installPathExtensionsDirectory, "NewRelic.Providers.Wrapper.Sql.dll") },
+ //The NewRelic.Providers.Wrapper.SerilogLogging.dll depends on the Serilog.dll; therefore, it should
+ //only be loaded by the agent when Serilog is used otherwise assembly load exception will occur.
+ { "SerilogCreateLoggerWrapper", Path.Combine(_installPathExtensionsDirectory, "NewRelic.Providers.Wrapper.SerilogLogging.dll") },
+ { "SerilogDispatchWrapper", Path.Combine(_installPathExtensionsDirectory, "NewRelic.Providers.Wrapper.SerilogLogging.dll") }
};
var nonAutoReflectedAssemblies = _dynamicLoadWrapperAssemblies.Values.Distinct().ToList();
diff --git a/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Log4NetLogging/Instrumentation.xml b/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Log4NetLogging/Instrumentation.xml
new file mode 100644
index 0000000000..43854629da
--- /dev/null
+++ b/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Log4NetLogging/Instrumentation.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Logging/Logging.csproj b/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Log4NetLogging/Log4NetLogging.csproj
similarity index 78%
rename from src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Logging/Logging.csproj
rename to src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Log4NetLogging/Log4NetLogging.csproj
index 8271a0ca97..8529a3a45b 100644
--- a/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Logging/Logging.csproj
+++ b/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Log4NetLogging/Log4NetLogging.csproj
@@ -1,9 +1,9 @@
net45;netstandard2.0
- NewRelic.Providers.Wrapper.Logging
- NewRelic.Providers.Wrapper.Logging
- Logging Wrapper Provider for New Relic .NET Agent
+ NewRelic.Providers.Wrapper.Log4NetLogging
+ NewRelic.Providers.Wrapper.Log4NetLogging
+ Log4net Wrapper Provider for New Relic .NET Agent
diff --git a/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Logging/Log4netWrapper.cs b/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Log4NetLogging/Log4netWrapper.cs
similarity index 100%
rename from src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Logging/Log4netWrapper.cs
rename to src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Log4NetLogging/Log4netWrapper.cs
diff --git a/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Logging/SerilogWrapper.cs b/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Logging/SerilogWrapper.cs
deleted file mode 100644
index 4a8aea1b04..0000000000
--- a/src/Agent/NewRelic/Agent/Extensions/Providers/Wrapper/Logging/SerilogWrapper.cs
+++ /dev/null
@@ -1,112 +0,0 @@
-// Copyright 2020 New Relic, Inc. All rights reserved.
-// SPDX-License-Identifier: Apache-2.0
-
-using System;
-using System.Collections;
-using NewRelic.Agent.Api;
-using NewRelic.Agent.Api.Experimental;
-using NewRelic.Agent.Extensions.Logging;
-using NewRelic.Agent.Extensions.Providers.Wrapper;
-using NewRelic.Reflection;
-
-namespace NewRelic.Providers.Wrapper.Logging
-{
- public class SerilogWrapper : IWrapper
- {
- private const string AssemblyName = "Serilog";
- private const string TypeName = "Serilog.Events.ScalarValue";
-
- private static Func