WebJob - 抑制 Azure 队列连接的日志

问题描述 投票:0回答:1

将我的 WebJobs 升级到 dotnet 7 后,一切都工作得很好,但现在它显示连接到队列的日志,如下所示:

每次作业检查新消息(5 秒)时都会显示此信息。此后,就无法检查我真正需要的日志了。

如何隐藏这些日志并只查看我真正需要的日志?

提前致谢。

azure-webjobs azure-webjobssdk azure-storage-queues webjob
1个回答
0
投票

最初,我什至得到了与

Azure.Core
包中的所有请求相同的日志。

 Azure.Core[1]
      Request [****] GET https://harshu**.queue.core.windows.net/queue/messages?numofmessages=16&visibilitytimeout=600
      x-ms-version:2018-11-09
      Accept:application/xml
      x-ms-client-request-id:****
   --------
  • 其原因是在
    Program.cs
    文件中配置日志记录以添加所有控制台日志。
 builder.ConfigureLogging((context, log) =>
 {
     log.AddConsole();
 }
  • 为了避免这种情况,您可以在
    appsettings.json
    文件中添加日志记录级别以忽略来自
    Azure.Core
    包的日志。

我参考了这个 SOThread 配置。

appsettings.json
文件中的配置日志记录级别:

appsettings.json
文件:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Azure.Core": "None"
    }
  },
  "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=harshusa;AccountKey=*****;EndpointSuffix=core.windows.net"
}

Program.cs
文件

  builder.ConfigureLogging((context, log) =>
  {    
      var logconfig = context.Configuration.GetSection("Logging");
      log.AddConfiguration(logconfig); 
      log.AddConsole();
  });

使用添加过滤器选项:

可以在

program.cs
文件本身中添加过滤器。

  builder.ConfigureLogging((context, log) =>
  {           
      log.AddConsole();
      log.AddFilter("Azure.Core", LogLevel.None);
  });

输出: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.