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

Ian*_*nro 8 azure azure-functions asp.net-core-2.0

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

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

Executed ‘MyFunctionName’ (Succeeded, Id=a99c6932-788f-439e-a7db-aad7f607d5ea)
Run Code Online (Sandbox Code Playgroud)

Jer*_*Liu 10

您要清除的执行日志是由函数运行时生成的,我们可以设置更高的日志级别来过滤信息并保留我们自定义的信息。

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

对于 Function app v2,使用host.json 中的这个设置,排除的日志无处可寻。

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "Function.MyFunctionName.User": "Information",
      "Function": "Error"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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

{
  "logger": {
    "categoryFilter": {
      "categoryLevels": {
        "Host.Executor": "Error"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)