2016-07-07 41 views

回答

8

记录到DI

增加了以下服务
services.TryAdd(ServiceDescriptor.Singleton<ILoggerFactory, LoggerFactory>()); 
services.TryAdd(ServiceDescriptor.Singleton(typeof(ILogger<>), typeof(Logger<>))); 

Logger<>取决于来自DI的ILoggerFactory

对于第二种情况,您需要注入ILoggerFactory而不是ILogger。

public Foo(ILoggerFactory loggerFactory) 
{ 
    _logger = loggerFactory.CreateLogger("logger name here"); 
} 
0

你的第一个工作之情况,因为从​​(see source codeILogger<>继承

public interface ILogger<out TCategoryName> : ILogger 
{ 

} 

但作为@KiranChalla说,在LoggingServiceCollectionExtensionsILogger<>注册(不​​),所以你的第二个之情况不起作用。

相关问题