[Perf] Check for Logger.IsEnabled in logging methods of MvcCoreLoggerExtensions

Fixes #4466
This commit is contained in:
mnltejaswini 2016-04-19 11:15:26 -07:00
parent 1f93977729
commit 73dc7bf48b
1 changed files with 37 additions and 13 deletions

View File

@ -213,6 +213,8 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public static void ExecutedAction(this ILogger logger, ActionDescriptor action, long startTimestamp) public static void ExecutedAction(this ILogger logger, ActionDescriptor action, long startTimestamp)
{ {
// Don't log if logging wasn't enabled at start of request as time will be wildly wrong. // Don't log if logging wasn't enabled at start of request as time will be wildly wrong.
if (logger.IsEnabled(LogLevel.Information))
{
if (startTimestamp != 0) if (startTimestamp != 0)
{ {
var currentTimestamp = Stopwatch.GetTimestamp(); var currentTimestamp = Stopwatch.GetTimestamp();
@ -221,6 +223,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
_actionExecuted(logger, action.DisplayName, elapsed.TotalMilliseconds, null); _actionExecuted(logger, action.DisplayName, elapsed.TotalMilliseconds, null);
} }
} }
}
public static void NoActionsMatched(this ILogger logger) public static void NoActionsMatched(this ILogger logger)
{ {
@ -228,9 +231,12 @@ namespace Microsoft.AspNetCore.Mvc.Internal
} }
public static void ChallengeResultExecuting(this ILogger logger, IList<string> schemes) public static void ChallengeResultExecuting(this ILogger logger, IList<string> schemes)
{
if (logger.IsEnabled(LogLevel.Information))
{ {
_challengeResultExecuting(logger, schemes.ToArray(), null); _challengeResultExecuting(logger, schemes.ToArray(), null);
} }
}
public static void ContentResultExecuting(this ILogger logger, string contentType) public static void ContentResultExecuting(this ILogger logger, string contentType)
{ {
@ -264,10 +270,13 @@ namespace Microsoft.AspNetCore.Mvc.Internal
} }
public static void ActionMethodExecuted(this ILogger logger, ActionExecutingContext context, IActionResult result) public static void ActionMethodExecuted(this ILogger logger, ActionExecutingContext context, IActionResult result)
{
if (logger.IsEnabled(LogLevel.Debug))
{ {
var actionName = context.ActionDescriptor.DisplayName; var actionName = context.ActionDescriptor.DisplayName;
_actionMethodExecuted(logger, actionName, Convert.ToString(result), null); _actionMethodExecuted(logger, actionName, Convert.ToString(result), null);
} }
}
public static void AmbiguousActions(this ILogger logger, string actionNames) public static void AmbiguousActions(this ILogger logger, string actionNames)
{ {
@ -317,9 +326,12 @@ namespace Microsoft.AspNetCore.Mvc.Internal
} }
public static void ForbidResultExecuting(this ILogger logger, IList<string> authenticationSchemes) public static void ForbidResultExecuting(this ILogger logger, IList<string> authenticationSchemes)
{
if (logger.IsEnabled(LogLevel.Information))
{ {
_forbidResultExecuting(logger, authenticationSchemes.ToArray(), null); _forbidResultExecuting(logger, authenticationSchemes.ToArray(), null);
} }
}
public static void SignInResultExecuting(this ILogger logger, string authenticationScheme, ClaimsPrincipal principal) public static void SignInResultExecuting(this ILogger logger, string authenticationScheme, ClaimsPrincipal principal)
{ {
@ -327,9 +339,12 @@ namespace Microsoft.AspNetCore.Mvc.Internal
} }
public static void SignOutResultExecuting(this ILogger logger, IList<string> authenticationSchemes) public static void SignOutResultExecuting(this ILogger logger, IList<string> authenticationSchemes)
{
if (logger.IsEnabled(LogLevel.Information))
{ {
_signOutResultExecuting(logger, authenticationSchemes.ToArray(), null); _signOutResultExecuting(logger, authenticationSchemes.ToArray(), null);
} }
}
public static void HttpStatusCodeResultExecuting(this ILogger logger, int statusCode) public static void HttpStatusCodeResultExecuting(this ILogger logger, int statusCode)
{ {
@ -342,25 +357,34 @@ namespace Microsoft.AspNetCore.Mvc.Internal
} }
public static void ObjectResultExecuting(this ILogger logger, object value) public static void ObjectResultExecuting(this ILogger logger, object value)
{
if (logger.IsEnabled(LogLevel.Information))
{ {
_objectResultExecuting(logger, Convert.ToString(value), null); _objectResultExecuting(logger, Convert.ToString(value), null);
} }
}
public static void NoFormatter( public static void NoFormatter(
this ILogger logger, this ILogger logger,
OutputFormatterWriteContext formatterContext) OutputFormatterWriteContext formatterContext)
{
if (logger.IsEnabled(LogLevel.Warning))
{ {
_noFormatter(logger, Convert.ToString(formatterContext.ContentType), null); _noFormatter(logger, Convert.ToString(formatterContext.ContentType), null);
} }
}
public static void FormatterSelected( public static void FormatterSelected(
this ILogger logger, this ILogger logger,
IOutputFormatter outputFormatter, IOutputFormatter outputFormatter,
OutputFormatterWriteContext context) OutputFormatterWriteContext context)
{
if (logger.IsEnabled(LogLevel.Debug))
{ {
var contentType = Convert.ToString(context.ContentType); var contentType = Convert.ToString(context.ContentType);
_formatterSelected(logger, outputFormatter, contentType, null); _formatterSelected(logger, outputFormatter, contentType, null);
} }
}
public static void SkippedContentNegotiation(this ILogger logger, string contentType) public static void SkippedContentNegotiation(this ILogger logger, string contentType)
{ {