Update OcelotLogger to accept name of class

OcelotLogger now has a property called "Name" intended to store the name
of the type for which the logger has been built for. This is intended to
keep the code a little bit cleaner and also allows for a few extention
methods for common logging scenarios
This commit is contained in:
Marc Denman 2017-03-18 18:30:09 +00:00
parent 82ecd667e0
commit ad81b7a305
4 changed files with 47 additions and 10 deletions

View File

@ -9,8 +9,11 @@ namespace Ocelot.Logging
private readonly ILogger _logger; private readonly ILogger _logger;
private readonly IRequestScopedDataRepository _scopedDataRepository; private readonly IRequestScopedDataRepository _scopedDataRepository;
public AspDotNetLogger(ILogger logger, IRequestScopedDataRepository scopedDataRepository) public string Name { get; }
public AspDotNetLogger(ILogger logger, IRequestScopedDataRepository scopedDataRepository, string typeName)
{ {
Name = typeName;
_logger = logger; _logger = logger;
_scopedDataRepository = scopedDataRepository; _scopedDataRepository = scopedDataRepository;
} }

View File

@ -17,7 +17,7 @@ namespace Ocelot.Logging
public IOcelotLogger CreateLogger<T>() public IOcelotLogger CreateLogger<T>()
{ {
var logger = _loggerFactory.CreateLogger<T>(); var logger = _loggerFactory.CreateLogger<T>();
return new AspDotNetLogger(logger, _scopedDataRepository); return new AspDotNetLogger(logger, _scopedDataRepository, typeof(T).Name);
} }
} }
} }

View File

@ -15,5 +15,10 @@ namespace Ocelot.Logging
void LogDebug(string message, params object[] args); void LogDebug(string message, params object[] args);
void LogError(string message, Exception exception); void LogError(string message, Exception exception);
void LogError(string message, params object[] args); void LogError(string message, params object[] args);
/// <summary>
/// The name of the type the logger has been built for.
/// </summary>
string Name { get; }
} }
} }

View File

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Ocelot.Logging
{
public static class OcelotLoggerExtensions
{
public static void TraceMiddlewareEntry(this IOcelotLogger logger)
{
logger.LogTrace($"entered {logger.Name}");
}
public static void TraceInvokeNext(this IOcelotLogger logger)
{
logger.LogTrace($"invoking next middleware from {logger.Name}");
}
public static void TraceInvokeNextCompleted(this IOcelotLogger logger)
{
logger.LogTrace($"returned to {logger.Name} after next middleware completed");
}
public static void TraceMiddlewareCompleted(this IOcelotLogger logger)
{
logger.LogTrace($"completed {logger.Name}");
}
}
}