问题描述
所以我试图通过依赖注入设置ILogger,但遇到了一些麻烦。
在我的startup.cs
文件中,我看起来像这样:
builder.Services.AddLogging();
然后,我尝试将该记录器提供给我自己的类(其作用类似于ILogger库的包装器)
builder.Services.AddSingleton<LoggingWrapper>(s =>
{
return new LoggingWrapper(
s.GetService<ILoggerFactory>());
});
因此,在我的Azure函数中,LoggingWrapper
被注入到内部,但没有记录任何内容。每个函数附带的普通ILogger仍然可以工作,但是我想知道为什么我的包装器没有记录任何东西。
Logging Wrapper是一个采用ILogger方法并使用其创建自己的日志记录方法的类。例如,loggingWrapper.logInformation("string")
是一种将环绕`ILogger的方法。
我将其注入其他类中,例如:s.GetService<IAccountUpdaterLogger>()
提前感谢所有帮助!
解决方法
我遇到了同样的问题-您需要从其他来源设置/允许记录日志:
{
"version": "2.0","logging": {
"logLevel": {
"YourNamespace": "Information"
}
}
}
更多信息在这里:
,您是要注入ILogger吗?
//NOT... <LoggingWrapper>
builder.Services.AddSingleton<ILogger>(s =>
{
return new LoggingWrapper(
s.GetService<ILoggerFactory>());
});