C# ASP.Net5获取当前Ilogger

C# ASP.Net5获取当前Ilogger,c#,asp.net-core,coreclr,C#,Asp.net Core,Coreclr,我使用的一些界面恰好使用了Microsoft.Extensions.Logging.ILogger 我想知道如何使用Ilogger实例化一个接口,注意我只在 这就是我所做的,但我不知道这是否正确 services.AddSingleton<IServiceCache, Cache>( Iapp => new Cache(_loggerFactory.CreateLogger("Debug")) ); services.AddSingleton(Iapp=>newcache(_

我使用的一些界面恰好使用了
Microsoft.Extensions.Logging.ILogger

我想知道如何使用
Ilogger
实例化一个接口,注意我只在

这就是我所做的,但我不知道这是否正确

services.AddSingleton<IServiceCache, Cache>( Iapp => new Cache(_loggerFactory.CreateLogger("Debug")) );
services.AddSingleton(Iapp=>newcache(_loggerFactory.CreateLogger(“Debug”));
或者您可以执行以下操作:

#if DEBUG
    services.AddSingleton<ILogger>(_loggerFactory.CreateLogger("Debug"));
#else
    // here add logger for release or whatever other mode
#endif
#如果调试
services.AddSingleton(_loggerFactory.CreateLogger(“调试”);
#否则
//这里添加用于发布或任何其他模式的记录器
#恩迪夫
ILogger将自动注入从属服务中。所以这就足够了:

services.AddSingleton<IServiceCache, Cache>();
services.AddSingleton();
services.AddSingleton(app=>new Cache(app.GetService().ToArray()[0]);我认为这比复制记录器更好