Set*_*Set 20 logging asp.net-core
如果类T包含对ILogger的依赖,则解析依赖关系:
public class Foo
{
private ILogger _logger;
public Foo(ILogger<Foo> logger)
{
_logger = logger;
}
}
Run Code Online (Sandbox Code Playgroud)
但以下不起作用,因为logger将为null:
public class Foo
{
private ILogger _logger;
public Foo(ILogger logger)
{
_logger = logger;
}
}
Run Code Online (Sandbox Code Playgroud)
Kir*_*lla 17
日志记录将以下服务添加到DI
services.TryAdd(ServiceDescriptor.Singleton<ILoggerFactory, LoggerFactory>());
services.TryAdd(ServiceDescriptor.Singleton(typeof(ILogger<>), typeof(Logger<>)));
Run Code Online (Sandbox Code Playgroud)
并Logger<>取决于ILoggerFactoryDI.
对于第二种情况,您需要注入ILoggerFactory而不是ILogger.
public Foo(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger("logger name here");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5323 次 |
| 最近记录: |