Skip to content

Commit 836964a

Browse files
pranavkmnatemcmaster
authored andcommitted
Don't log action and page handler arguments above Trace level (#9227)
1 parent e0a4673 commit 836964a

File tree

3 files changed

+49
-28
lines changed

3 files changed

+49
-28
lines changed

eng/PatchConfig.props

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ Later on, this will be checked using this condition:
2828
</PropertyGroup>
2929
<PropertyGroup Condition=" '$(VersionPrefix)' == '2.1.11' ">
3030
<PackagesInPatch>
31+
Microsoft.AspNetCore.Mvc.Core;
32+
Microsoft.AspNetCore.Mvc.RazorPages;
3133
</PackagesInPatch>
3234
</PropertyGroup>
3335

src/Mvc/Mvc.Core/src/Internal/MvcCoreLoggerExtensions.cs

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,15 @@ internal static class MvcCoreLoggerExtensions
3232
private static readonly double TimestampToTicks = TimeSpan.TicksPerSecond / (double)Stopwatch.Frequency;
3333

3434
private static readonly Action<ILogger, string, string, Exception> _actionExecuting;
35+
private static readonly Action<ILogger, string, MethodInfo, string, string, Exception> _controllerActionExecuting;
3536
private static readonly Action<ILogger, string, double, Exception> _actionExecuted;
3637

3738
private static readonly Action<ILogger, string[], Exception> _challengeResultExecuting;
3839

3940
private static readonly Action<ILogger, string, Exception> _contentResultExecuting;
4041

4142
private static readonly Action<ILogger, string, ModelValidationState, Exception> _actionMethodExecuting;
42-
private static readonly Action<ILogger, string, string[], ModelValidationState, Exception> _actionMethodExecutingWithArguments;
43+
private static readonly Action<ILogger, string, string[], Exception> _actionMethodExecutingWithArguments;
4344
private static readonly Action<ILogger, string, string, double, Exception> _actionMethodExecuted;
4445

4546
private static readonly Action<ILogger, string, string[], Exception> _logFilterExecutionPlan;
@@ -153,6 +154,11 @@ static MvcCoreLoggerExtensions()
153154
1,
154155
"Route matched with {RouteData}. Executing action {ActionName}");
155156

157+
_controllerActionExecuting = LoggerMessage.Define<string, MethodInfo, string, string>(
158+
LogLevel.Information,
159+
3,
160+
"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).");
161+
156162
_actionExecuted = LoggerMessage.Define<string, double>(
157163
LogLevel.Information,
158164
2,
@@ -173,10 +179,10 @@ static MvcCoreLoggerExtensions()
173179
1,
174180
"Executing action method {ActionName} - Validation state: {ValidationState}");
175181

176-
_actionMethodExecutingWithArguments = LoggerMessage.Define<string, string[], ModelValidationState>(
177-
LogLevel.Information,
178-
1,
179-
"Executing action method {ActionName} with arguments ({Arguments}) - Validation state: {ValidationState}");
182+
_actionMethodExecutingWithArguments = LoggerMessage.Define<string, string[]>(
183+
LogLevel.Trace,
184+
3,
185+
"Executing action method {ActionName} with arguments ({Arguments})");
180186

181187
_actionMethodExecuted = LoggerMessage.Define<string, string, double>(
182188
LogLevel.Information,
@@ -683,7 +689,22 @@ public static void ExecutingAction(this ILogger logger, ActionDescriptor action)
683689
}
684690
}
685691

686-
_actionExecuting(logger, stringBuilder.ToString(), action.DisplayName, null);
692+
if (action is ControllerActionDescriptor controllerActionDescriptor)
693+
{
694+
var controllerType = controllerActionDescriptor.ControllerTypeInfo.AsType();
695+
var controllerName = TypeNameHelper.GetTypeDisplayName(controllerType);
696+
_controllerActionExecuting(
697+
logger,
698+
stringBuilder.ToString(),
699+
controllerActionDescriptor.MethodInfo,
700+
controllerName,
701+
controllerType.Assembly.GetName().Name,
702+
null);
703+
}
704+
else
705+
{
706+
_actionExecuting(logger, stringBuilder.ToString(), action.DisplayName, null);
707+
}
687708
}
688709
}
689710

@@ -814,21 +835,17 @@ public static void ActionMethodExecuting(this ILogger logger, ControllerContext
814835
var actionName = context.ActionDescriptor.DisplayName;
815836

816837
var validationState = context.ModelState.ValidationState;
838+
_actionMethodExecuting(logger, actionName, validationState, null);
817839

818-
string[] convertedArguments;
819-
if (arguments == null)
820-
{
821-
_actionMethodExecuting(logger, actionName, validationState, null);
822-
}
823-
else
840+
if (arguments != null && logger.IsEnabled(LogLevel.Trace))
824841
{
825-
convertedArguments = new string[arguments.Length];
842+
var convertedArguments = new string[arguments.Length];
826843
for (var i = 0; i < arguments.Length; i++)
827844
{
828845
convertedArguments[i] = Convert.ToString(arguments[i]);
829846
}
830847

831-
_actionMethodExecutingWithArguments(logger, actionName, convertedArguments, validationState, null);
848+
_actionMethodExecutingWithArguments(logger, actionName, convertedArguments, null);
832849
}
833850
}
834851
}

src/Mvc/Mvc.RazorPages/src/Internal/PageLoggerExtensions.cs

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ internal static class PageLoggerExtensions
1515
{
1616
public const string PageFilter = "Page Filter";
1717

18-
private static readonly Action<ILogger, string, string[], ModelValidationState, Exception> _handlerMethodExecuting;
18+
private static readonly Action<ILogger, string, ModelValidationState, Exception> _handlerMethodExecuting;
19+
private static readonly Action<ILogger, string, string[], Exception> _handlerMethodExecutingWithArguments;
1920
private static readonly Action<ILogger, string, string, Exception> _handlerMethodExecuted;
2021
private static readonly Action<ILogger, object, Exception> _pageFilterShortCircuit;
2122
private static readonly Action<ILogger, string, string[], Exception> _malformedPageDirective;
@@ -28,10 +29,15 @@ static PageLoggerExtensions()
2829
{
2930
// These numbers start at 101 intentionally to avoid conflict with the IDs used by ResourceInvoker.
3031

31-
_handlerMethodExecuting = LoggerMessage.Define<string, string[], ModelValidationState>(
32+
_handlerMethodExecuting = LoggerMessage.Define<string, ModelValidationState>(
3233
LogLevel.Information,
3334
101,
34-
"Executing handler method {HandlerName} with arguments ({Arguments}) - ModelState is {ValidationState}");
35+
"Executing handler method {HandlerName} - ModelState is {ValidationState}");
36+
37+
_handlerMethodExecutingWithArguments = LoggerMessage.Define<string, string[]>(
38+
LogLevel.Trace,
39+
103,
40+
"Executing handler method {HandlerName} with arguments ({Arguments})");
3541

3642
_handlerMethodExecuted = LoggerMessage.Define<string, string>(
3743
LogLevel.Debug,
@@ -75,23 +81,19 @@ public static void ExecutingHandlerMethod(this ILogger logger, PageContext conte
7581
{
7682
var handlerName = handler.MethodInfo.Name;
7783

78-
string[] convertedArguments;
79-
if (arguments == null)
80-
{
81-
convertedArguments = null;
82-
}
83-
else
84+
var validationState = context.ModelState.ValidationState;
85+
_handlerMethodExecuting(logger, handlerName, validationState, null);
86+
87+
if (arguments != null && logger.IsEnabled(LogLevel.Trace))
8488
{
85-
convertedArguments = new string[arguments.Length];
89+
var convertedArguments = new string[arguments.Length];
8690
for (var i = 0; i < arguments.Length; i++)
8791
{
8892
convertedArguments[i] = Convert.ToString(arguments[i]);
8993
}
90-
}
9194

92-
var validationState = context.ModelState.ValidationState;
93-
94-
_handlerMethodExecuting(logger, handlerName, convertedArguments, validationState, null);
95+
_handlerMethodExecutingWithArguments(logger, handlerName, convertedArguments, null);
96+
}
9597
}
9698
}
9799

0 commit comments

Comments
 (0)