.net core 如何在Azure Function 2.0中登录到其他日志提供程序

.net core 如何在Azure Function 2.0中登录到其他日志提供程序,.net-core,azure-functions,serverless,.net Core,Azure Functions,Serverless,除了应用程序洞察之外,我们还希望在我们的函数中登录到日志提供程序(Seq) 我们很难理解如何在FunctionsStartup的扩展中设置它,在这里我们设置了其他依赖项 在我们看来,这可以通过(至少)两种方式来解决 1) 除了自定义记录器(Serilog logger,设置为sink to Seq)之外,使用默认记录器(记录到app Insights)引导我们的函数应用程序 2) 对ILogger执行运行时依赖项注入解析,除了记录到Seq之外,还对其执行记录到App Insights。然后我们可

除了应用程序洞察之外,我们还希望在我们的函数中登录到日志提供程序(Seq)

我们很难理解如何在FunctionsStartup的扩展中设置它,在这里我们设置了其他依赖项

在我们看来,这可以通过(至少)两种方式来解决

1) 除了自定义记录器(Serilog logger,设置为sink to Seq)之外,使用默认记录器(记录到app Insights)引导我们的函数应用程序

2) 对ILogger执行运行时依赖项注入解析,除了记录到Seq之外,还对其执行记录到App Insights。然后我们可以有一个单例ICompanyLogger,它可以同时记录这两个日志


是否有人知道如何在函数中执行运行时DI解析和/或如何在Microsoft.Extensions.Logging.ILogger中设置多个接收器?

您应该能够在最新版本中插入所选的记录器

下面是如何设置DI,它几乎与.NETCore完全相同


创建启动类后,只需将所需内容添加到函数构造函数。

要真正启用Azure函数的登录,必须将以下内容添加到host.json:

{
    "logging": {
        "logLevel": {
            "default": "Warning"
        }
    }
}

如果未设置此默认级别,日志调用将导致没有日志记录(在配置中未设置“默认”时,这应默认为至少错误)

所有日志记录提供程序都以相同的方式添加。Application Insights不是默认设置,它也必须添加到日志记录提供程序中。这听起来更像是关于代码的问题,而不是日志本身。你的代码看起来像什么?您检查了吗?您可以使用软件包将Seq与Microsoft.Extensions.Logging集成。添加包后,只需添加
logging.AddSeq(“http://localhost:5341");
ConfigureLogging
中,我看到关于如何启动
函数的文档很少,而。。。关于的段落没有帮助,只不过是打电话给
IWebJobsBuilder.Services
感谢您的回复。接下来的问题:您知道当我们调用函数Startup子类并在其中引导函数时,是否可以获得实际的ILogger吗。通过这种方式,我们可以将它注入到我们设置的依赖项中(我们有一个做日志记录的服务客户端),非常简单,但这正是我一直缺少的——谢谢!