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) { }