Azure Function v4 - 如何关闭主机日志记录

Azure Function v4 - How Turn Off Host Logging

我有一个通过 DevOps 构建和发布管道部署的 C# Azure Function 应用程序。

在 v3 Functions 运行时上是 运行。我最近更新了函数应用程序的项目文件和二头肌模板,使其在 v4 上运行。

该应用配置为通过 Serilog 登录到 Azure Sql。自更新以来,我注意到来自 Azure Functions 主机的数千个额外日志条目

我的 appsettings.json 文件的日志记录部分如下所示。我的理解是这些将用于函数应用程序作为环境变量可用的等效值 - 通过函数应用程序的配置设置部分?

"Logging": {
"LogLevel": {
  "Default": "Error"
},
"ApplicationInsights": {
  "LogLevel": {
    "Default": "Information"
  }
}
}

我尝试按照 的答案,通过在函数应用程序的应用程序设置中添加以下条目来抑制日志记录:

"name": "AzureFunctionsJobHost__Logging__LogLevel__Microsoft",
"value": "Error"

"name": "AzureFunctionsJobHost__Logging__LogLevel__Azure",
"value": "Error"

我重新启动了函数应用程序,但发现日志中没有任何差异。这是不需要的日志记录之一的示例(所有记录的级别均为“信息”):

<properties>
<property key='requestId'>bcc9a52c-fb8b-4a89-bb1c-9ed08eb305c4</property>
<property key='status'>200</property>
<property key='reasonPhrase'>OK</property>
<property key='seconds'>0.0048284</property>
<property key='EventSourceEvent'>Response [bcc9a52c-fb8b-4a89-bb1c-9ed08eb305c4] 200 OK (00.0s)</property>
<property key='EventId'>
    <structure type=''>
        <property key='Id'>5</property>
        <property key='Name'>Response</property>
    </structure>
</property>
<property key='SourceContext'>Azure.Core</property>

对看到这个的任何人道歉 - 我是个白痴!

另一个项目最近被添加到解决方案中,我正在查看错误项目的配置。

对于遇到类似问题的任何人,我建议尝试可以在运行时调整的 serilog 配置,而不必重新部署包含 Serilog LoggerConfiguration 对象的 C#。这 github link 解释了如何