阻止 Azure 函数记录“正在执行”和“已执行”消息

Stop an Azure Function from logging the “Executing” and “Executed” messages

当我的 Azure 函数被触发时,它会记录“正在执行”和“已执行”消息。这在测试期间很好,但由于此函数被多次触发,它会创建大量不需要的日志消息。我自己添加的日志记录对我很重要,但我想禁用函数自己的“正在执行”和“已执行”消息。澄清一下,我不想记录以下消息:

Executing ‘MyFunctionName’ (Reason='New ServiceBus message detected……etc’)

Executed ‘MyFunctionName’ (Succeeded, Id=a99c6932-788f-439e-a7db-aad7f607d5ea)

To disable built-in logging, delete the AzureWebJobsDashboard app setting.

来源:Monitor Azure Functions - Disable built-in logging

你要去掉的执行日志是由函数运行时产生的,我们可以设置更高的日志级别来过滤信息,保留我们自定义的信息。

转到 Azure 门户,平台功能> 函数应用设置> host.json

对于函数应用程序 v2,在 host.json 中使用此设置,无法找到排除的日志。

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "Function.MyFunctionName.User": "Information",
      "Function": "Error"
    }
  }
}

对于 v1,使用 ILogger 而不是 TraceWriter。 host.json 中的此设置仅限制发送到 Application Insights 的那些,这意味着我们仍然可以在控制台或文件日志中看到它们。

{
  "logger": {
    "categoryFilter": {
      "categoryLevels": {
        "Host.Executor": "Error"
      }
    }
  }
}