* Switch to new logging style
This commit is contained in:
parent
739dc7d621
commit
6e8b2ecd63
|
|
@ -1,33 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Routing.Logging.Internal
|
|
||||||
{
|
|
||||||
public static class LogFormatter
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// A formatter for use with <see cref="Microsoft.Extensions.Logging.ILogger.Log"/>.
|
|
||||||
/// </summary>
|
|
||||||
public static string Formatter(object o, Exception e)
|
|
||||||
{
|
|
||||||
if (o != null && e != null)
|
|
||||||
{
|
|
||||||
return o + Environment.NewLine + e;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (o != null)
|
|
||||||
{
|
|
||||||
return o.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (e != null)
|
|
||||||
{
|
|
||||||
return e.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Routing.Logging.Internal
|
|
||||||
{
|
|
||||||
public static class LoggerExtensions
|
|
||||||
{
|
|
||||||
public static void WriteValues(this ILogger logger, object values)
|
|
||||||
{
|
|
||||||
if (logger == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(logger));
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.Log(
|
|
||||||
logLevel: LogLevel.Debug,
|
|
||||||
eventId: 0,
|
|
||||||
state: values,
|
|
||||||
exception: null,
|
|
||||||
formatter: LogFormatter.Formatter);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNet.Routing.Logging
|
||||||
|
{
|
||||||
|
internal static class RouteConstraintMatcherExtensions
|
||||||
|
{
|
||||||
|
private static readonly Action<ILogger, object, string, IRouteConstraint, Exception> _routeValueDoesNotMatchConstraint;
|
||||||
|
|
||||||
|
static RouteConstraintMatcherExtensions()
|
||||||
|
{
|
||||||
|
_routeValueDoesNotMatchConstraint = LoggerMessage.Define<object, string, IRouteConstraint>(
|
||||||
|
LogLevel.Debug,
|
||||||
|
1,
|
||||||
|
"Route value '{RouteValue}' with key '{RouteKey}' did not match " +
|
||||||
|
"the constraint '{RouteConstraint}'.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void RouteValueDoesNotMatchConstraint(
|
||||||
|
this ILogger logger,
|
||||||
|
object routeValue,
|
||||||
|
string routeKey,
|
||||||
|
IRouteConstraint routeConstraint)
|
||||||
|
{
|
||||||
|
_routeValueDoesNotMatchConstraint(logger, routeValue, routeKey, routeConstraint, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNet.Routing.Logging
|
||||||
|
{
|
||||||
|
internal static class RouterMiddlewareLoggerExtensions
|
||||||
|
{
|
||||||
|
private static readonly Action<ILogger, Exception> _requestDidNotMatchRoutes;
|
||||||
|
|
||||||
|
static RouterMiddlewareLoggerExtensions()
|
||||||
|
{
|
||||||
|
_requestDidNotMatchRoutes = LoggerMessage.Define(
|
||||||
|
LogLevel.Debug,
|
||||||
|
1,
|
||||||
|
"Request did not match any routes.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void RequestDidNotMatchRoutes(this ILogger logger)
|
||||||
|
{
|
||||||
|
_requestDidNotMatchRoutes(logger, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Routing.Logging
|
|
||||||
{
|
|
||||||
internal static class StringBuilderHelpers
|
|
||||||
{
|
|
||||||
public static void Append<T>(StringBuilder builder, IEnumerable<T> items)
|
|
||||||
{
|
|
||||||
if (items == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var item in items)
|
|
||||||
{
|
|
||||||
builder.Append(Environment.NewLine);
|
|
||||||
builder.Append("\t\t");
|
|
||||||
builder.Append(item != null ? item.ToString() : "null");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Append<K, V>(StringBuilder builder, IDictionary<K, V> dict)
|
|
||||||
{
|
|
||||||
if (dict == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var kvp in dict)
|
|
||||||
{
|
|
||||||
builder.Append(Environment.NewLine);
|
|
||||||
builder.Append("\t\t");
|
|
||||||
builder.Append(kvp.Key != null ? kvp.Key.ToString() : "null");
|
|
||||||
builder.Append(" : ");
|
|
||||||
builder.Append(kvp.Value != null ? kvp.Value.ToString() : "null");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -7,6 +7,7 @@ using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.Routing.Internal;
|
using Microsoft.AspNet.Routing.Internal;
|
||||||
|
using Microsoft.AspNet.Routing.Logging;
|
||||||
using Microsoft.AspNet.Routing.Template;
|
using Microsoft.AspNet.Routing.Template;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
@ -105,13 +106,9 @@ namespace Microsoft.AspNet.Routing
|
||||||
{
|
{
|
||||||
return TaskCache.CompletedTask;
|
return TaskCache.CompletedTask;
|
||||||
}
|
}
|
||||||
|
_logger.MatchedRouteName(Name, ParsedTemplate.TemplateText);
|
||||||
|
|
||||||
_logger.LogDebug(
|
return OnRouteMatched(context);
|
||||||
"Request successfully matched the route with name '{RouteName}' and template '{RouteTemplate}'.",
|
|
||||||
Name,
|
|
||||||
ParsedTemplate.TemplateText);
|
|
||||||
|
|
||||||
return OnRouteMatched(context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
|
using Microsoft.AspNet.Routing.Logging;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Routing
|
namespace Microsoft.AspNet.Routing
|
||||||
|
|
@ -53,12 +54,7 @@ namespace Microsoft.AspNet.Routing
|
||||||
object routeValue;
|
object routeValue;
|
||||||
routeValues.TryGetValue(kvp.Key, out routeValue);
|
routeValues.TryGetValue(kvp.Key, out routeValue);
|
||||||
|
|
||||||
logger.LogDebug(
|
logger.RouteValueDoesNotMatchConstraint(routeValue, kvp.Key, kvp.Value);
|
||||||
"Route value '{RouteValue}' with key '{RouteKey}' did not match " +
|
|
||||||
"the constraint '{RouteConstraint}'.",
|
|
||||||
routeValue,
|
|
||||||
kvp.Key,
|
|
||||||
kvp.Value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.Routing;
|
using Microsoft.AspNet.Routing;
|
||||||
|
using Microsoft.AspNet.Routing.Logging;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Builder
|
namespace Microsoft.AspNet.Builder
|
||||||
|
|
@ -35,7 +35,7 @@ namespace Microsoft.AspNet.Builder
|
||||||
|
|
||||||
if (context.Handler == null)
|
if (context.Handler == null)
|
||||||
{
|
{
|
||||||
_logger.LogDebug("Request did not match any routes.");
|
_logger.RequestDidNotMatchRoutes();
|
||||||
await _next.Invoke(httpContext);
|
await _next.Invoke(httpContext);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue