从WebJob应用程序洞察中筛选出Azure ServiceBus日志

myss37ts  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(152)

我一直在尝试在Application Insights中筛选出我的ServiceBus触发的Webjob发送的信息消息。这些消息由以下两个日志组成:
异步接收批处理开始。消息计数= 1
ReceiveBatchAsync已完成。收到'0'条消息。锁定令牌=
我的目标是只记录我在代码中记录的信息跟踪,而忽略来自Azure.Messaging.ServiceBus的日志。如何实现这一目标?
到目前为止,我已经尝试在program.cs文件中使用以下代码添加过滤器

b.AddFilter("Azure.Messaging.ServiceBus", LogLevel.Warning);

我还尝试在appsettings.json文件中添加以下设置

"Logging": {
    "LogLevel": {
        "Default": "Information",
        "Azure.Messaging.ServiceBus": "Warning"
    }
},

至于我的设置,我正在使用以下软件包,这是关注:

  • Microsoft.Extensions.Logging.Console
  • Microsoft.Azure.WebJobs.Extensions.ServiceBus

下面的代码是我在program.cs文件中的日志配置。

mnowg1ta

mnowg1ta1#

我在过滤一些Service Bus或EFCore日志时遇到了同样的问题。通过在日志配置代码中添加一些硬编码的过滤器,我能够部分解决这个问题:

builder.ConfigureLogging((context, b) =>
                    {
                        // If the key exists in settings, use it to enable Application Insights.
                        string instrumentationKey = context.Configuration["EASY_APPINSIGHTS_INSTRUMENTATIONKEY"];
                        if (!string.IsNullOrEmpty(instrumentationKey))
                        {
                            b.AddApplicationInsightsWebJobs(o => o.InstrumentationKey = instrumentationKey);
                        }
                        b.AddConsole();

                        b.AddFilter("Azure.Messaging.ServiceBus", LogLevel.Error);
                        b.AddFilter("Microsoft.EntityFrameworkCore", LogLevel.Error);
                    });

但我想知道我如何设置日志只是在更新设置从AppService的设置。

相关问题