具有Azure函数的ILogger依赖项注入

时间:2020-08-13 21:51:50

标签: c# azure dependency-injection azure-functions ilogger

所以我试图通过依赖注入设置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>()

提前感谢所有帮助!

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题-您需要从其他来源设置/允许记录日志:

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "YourNamespace": "Information"
    }
  }
}

更多信息在这里:

答案 1 :(得分:1)

您是要注入ILogger吗?

//NOT...                     <LoggingWrapper>
builder.Services.AddSingleton<ILogger>(s =>
{
    return new LoggingWrapper(
        s.GetService<ILoggerFactory>());
});