diff --git a/build/dependencies.props b/build/dependencies.props
index d120513bd4..635ac13fe4 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -4,10 +4,7 @@
2.1.10
2.1.10
-
4.5.2
-
- 2.1.1
@@ -35,6 +32,7 @@
2.1.1
2.1.1
2.1.1
+ 2.1.10
2.1.1
2.1.1
2.1.1
@@ -133,9 +131,9 @@
3.14.2
5.2.0
5.2.0
- 1.0.11
- 1.1.8
- 2.0.7
+ 1.0.15
+ 1.1.12
+ 2.0.9
1.0.1
15.9.0
3.0.1
diff --git a/build/submodules.props b/build/submodules.props
index 4370c412c7..a088430493 100644
--- a/build/submodules.props
+++ b/build/submodules.props
@@ -37,6 +37,6 @@
-
+
diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props
index c25500cb91..5c1a1aac1c 100644
--- a/eng/PatchConfig.props
+++ b/eng/PatchConfig.props
@@ -28,6 +28,8 @@ Later on, this will be checked using this condition:
+ Microsoft.AspNetCore.Mvc.Core;
+ Microsoft.AspNetCore.Mvc.RazorPages;
Microsoft.AspNetCore.SignalR.Protocols.MessagePack;
Microsoft.AspNetCore.SignalR.Redis;
diff --git a/modules/EntityFrameworkCore b/modules/EntityFrameworkCore
index 80a5f92597..e8f2f1ef03 160000
--- a/modules/EntityFrameworkCore
+++ b/modules/EntityFrameworkCore
@@ -1 +1 @@
-Subproject commit 80a5f9259776c41f30e5a63e3c9fdd240ce3be2d
+Subproject commit e8f2f1ef030701048cd47898a7d7d70a58342ba4
diff --git a/src/Mvc/Mvc.Core/src/Internal/MvcCoreLoggerExtensions.cs b/src/Mvc/Mvc.Core/src/Internal/MvcCoreLoggerExtensions.cs
index c840f785b1..7ce747f03f 100644
--- a/src/Mvc/Mvc.Core/src/Internal/MvcCoreLoggerExtensions.cs
+++ b/src/Mvc/Mvc.Core/src/Internal/MvcCoreLoggerExtensions.cs
@@ -32,6 +32,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private static readonly double TimestampToTicks = TimeSpan.TicksPerSecond / (double)Stopwatch.Frequency;
private static readonly Action _actionExecuting;
+ private static readonly Action _controllerActionExecuting;
private static readonly Action _actionExecuted;
private static readonly Action _challengeResultExecuting;
@@ -39,7 +40,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private static readonly Action _contentResultExecuting;
private static readonly Action _actionMethodExecuting;
- private static readonly Action _actionMethodExecutingWithArguments;
+ private static readonly Action _actionMethodExecutingWithArguments;
private static readonly Action _actionMethodExecuted;
private static readonly Action _logFilterExecutionPlan;
@@ -153,6 +154,11 @@ namespace Microsoft.AspNetCore.Mvc.Internal
1,
"Route matched with {RouteData}. Executing action {ActionName}");
+ _controllerActionExecuting = LoggerMessage.Define(
+ LogLevel.Information,
+ 3,
+ "Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).");
+
_actionExecuted = LoggerMessage.Define(
LogLevel.Information,
2,
@@ -173,10 +179,10 @@ namespace Microsoft.AspNetCore.Mvc.Internal
1,
"Executing action method {ActionName} - Validation state: {ValidationState}");
- _actionMethodExecutingWithArguments = LoggerMessage.Define(
- LogLevel.Information,
- 1,
- "Executing action method {ActionName} with arguments ({Arguments}) - Validation state: {ValidationState}");
+ _actionMethodExecutingWithArguments = LoggerMessage.Define(
+ LogLevel.Trace,
+ 3,
+ "Executing action method {ActionName} with arguments ({Arguments})");
_actionMethodExecuted = LoggerMessage.Define(
LogLevel.Information,
@@ -683,7 +689,22 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
}
- _actionExecuting(logger, stringBuilder.ToString(), action.DisplayName, null);
+ if (action is ControllerActionDescriptor controllerActionDescriptor)
+ {
+ var controllerType = controllerActionDescriptor.ControllerTypeInfo.AsType();
+ var controllerName = TypeNameHelper.GetTypeDisplayName(controllerType);
+ _controllerActionExecuting(
+ logger,
+ stringBuilder.ToString(),
+ controllerActionDescriptor.MethodInfo,
+ controllerName,
+ controllerType.Assembly.GetName().Name,
+ null);
+ }
+ else
+ {
+ _actionExecuting(logger, stringBuilder.ToString(), action.DisplayName, null);
+ }
}
}
@@ -814,21 +835,17 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var actionName = context.ActionDescriptor.DisplayName;
var validationState = context.ModelState.ValidationState;
+ _actionMethodExecuting(logger, actionName, validationState, null);
- string[] convertedArguments;
- if (arguments == null)
+ if (arguments != null && logger.IsEnabled(LogLevel.Trace))
{
- _actionMethodExecuting(logger, actionName, validationState, null);
- }
- else
- {
- convertedArguments = new string[arguments.Length];
+ var convertedArguments = new string[arguments.Length];
for (var i = 0; i < arguments.Length; i++)
{
convertedArguments[i] = Convert.ToString(arguments[i]);
}
- _actionMethodExecutingWithArguments(logger, actionName, convertedArguments, validationState, null);
+ _actionMethodExecutingWithArguments(logger, actionName, convertedArguments, null);
}
}
}
diff --git a/src/Mvc/Mvc.RazorPages/src/Internal/PageLoggerExtensions.cs b/src/Mvc/Mvc.RazorPages/src/Internal/PageLoggerExtensions.cs
index a5d7c960d4..fcca656b9d 100644
--- a/src/Mvc/Mvc.RazorPages/src/Internal/PageLoggerExtensions.cs
+++ b/src/Mvc/Mvc.RazorPages/src/Internal/PageLoggerExtensions.cs
@@ -15,7 +15,8 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
{
public const string PageFilter = "Page Filter";
- private static readonly Action _handlerMethodExecuting;
+ private static readonly Action _handlerMethodExecuting;
+ private static readonly Action _handlerMethodExecutingWithArguments;
private static readonly Action _handlerMethodExecuted;
private static readonly Action _pageFilterShortCircuit;
private static readonly Action _malformedPageDirective;
@@ -28,10 +29,15 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
{
// These numbers start at 101 intentionally to avoid conflict with the IDs used by ResourceInvoker.
- _handlerMethodExecuting = LoggerMessage.Define(
+ _handlerMethodExecuting = LoggerMessage.Define(
LogLevel.Information,
101,
- "Executing handler method {HandlerName} with arguments ({Arguments}) - ModelState is {ValidationState}");
+ "Executing handler method {HandlerName} - ModelState is {ValidationState}");
+
+ _handlerMethodExecutingWithArguments = LoggerMessage.Define(
+ LogLevel.Trace,
+ 103,
+ "Executing handler method {HandlerName} with arguments ({Arguments})");
_handlerMethodExecuted = LoggerMessage.Define(
LogLevel.Debug,
@@ -75,23 +81,19 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
{
var handlerName = handler.MethodInfo.Name;
- string[] convertedArguments;
- if (arguments == null)
+ var validationState = context.ModelState.ValidationState;
+ _handlerMethodExecuting(logger, handlerName, validationState, null);
+
+ if (arguments != null && logger.IsEnabled(LogLevel.Trace))
{
- convertedArguments = null;
- }
- else
- {
- convertedArguments = new string[arguments.Length];
+ var convertedArguments = new string[arguments.Length];
for (var i = 0; i < arguments.Length; i++)
{
convertedArguments[i] = Convert.ToString(arguments[i]);
}
+
+ _handlerMethodExecutingWithArguments(logger, handlerName, convertedArguments, null);
}
-
- var validationState = context.ModelState.ValidationState;
-
- _handlerMethodExecuting(logger, handlerName, convertedArguments, validationState, null);
}
}
diff --git a/test/SharedFx.UnitTests/SharedFxTests.cs b/test/SharedFx.UnitTests/SharedFxTests.cs
index 7d0c222298..de57b07f70 100644
--- a/test/SharedFx.UnitTests/SharedFxTests.cs
+++ b/test/SharedFx.UnitTests/SharedFxTests.cs
@@ -65,7 +65,7 @@ namespace Microsoft.AspNetCore
var localAssemblyVersion = AssemblyName.GetAssemblyName(file).Version;
var dllName = Path.GetFileName(file);
Assert.Contains(dllName, nugetAssemblyVersions.Keys);
- Assert.InRange(localAssemblyVersion.CompareTo(nugetAssemblyVersions[dllName]), 0, int.MaxValue);
+ Assert.True(localAssemblyVersion >= nugetAssemblyVersions[dllName], $"Expected {dllName} ({localAssemblyVersion}) to have assembly version >= {nugetAssemblyVersions[dllName]}");
}
catch (BadImageFormatException) { }