2016-07-07 43 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<>註冊(不​​),所以你的第二個之情況不起作用。

相關問題