.net core DI - ILogger always null

.net core DI - ILogger always null
Photo by Markus Spiske / Unsplash

Tenho trabalhado em um projeto de conversão de uma solução .net 4.8 para .net standard e recentemente conseguimos integrar alguns pacotes que são comuns no .net core em um projeto asp.net mvc 5, os 2 principais pacotes são:

Um problema que enfrentamos foi ao tentar injetar uma instância de ILogger nos nossos controllers sempre estava nulo.
Pesquisanso um pouco descobri que o comando services.AddLogging(); não registra a interface Ilogger no container, apenas Ilogger.

Para contarnos o problema temos duas soluções:

  1. Injetar uma instância de ILogger
  2. Registrar ILogger no nosso container:
services.AddSingleton(sp => sp.GetRequiredService<ILoggerFactory>().CreateLogger("DefaultLogger"));    

Por hoje é só.
Espero ter ajudado!