Injetor simples: registre o ILogger <T> usando ILoggerFactory.CreateLogger <T> ()

Estou trabalhando com um projeto que utiliza o Simple Injector como injetor de dependência. Por outro lado, este projeto usa Microsoft.Extensions.Logging para registrar os eventos que ocorrem em determinadas classes.

Meu problema técnico é bem simples de explicar. Quero registrar no meu DI o ILogger independentemente da classe T que está sendo chamada, masEU PRECISO fazer isso do meuILoggerFactory.CreateLogger<T>() método porque isso obtém a configuração do criador de logs usandoMicrosoft.Extensions.Configuration.

Eu preciso usar algo parecido com isto para instância meu logger:

private Microsoft.Extensions.Logging.ILogger CreateLogger<T>()
{
     var factory = this.ResolveService<ILoggerFactory>();
     var logger = factory.CreateLogger<T>();
     return logger;
}

Eu poderia conseguir a injeção fazendo:

Container.Register(typeof(ILogger<>), typeof(Logger<>));

E isso nos permite resolver algo como:

public class SomeApiController : ApiController
{
     public SomeApiController(ILogger<SomeApiController> logger)
     {
         //logger is well instantiated, but doesn't got the configuration
         logger.LogInformation("test log.");
     }
}

Mas como eu disse, isso acontece sem passar pela configuração obtida doMicrosoft.Extensions.Logging.ILoggerFactory classe, então isso não é útil.

Existe uma maneira de se registrarILogger<T> usando meuCreateLogger<T>?

questionAnswers(2)

yourAnswerToTheQuestion