如何阻止Azure.Messaging.ServiceBus的Info级异常写入App Insights?
阻止Azure.Messaging.ServiceBus命名空间的Info级异常记录到App Insights
问题描述
需阻止命名空间Azure.Messaging.ServiceBus下所有LogLevel=Info的异常被记录到App Insights,尝试如下host.json配置但无效:
{ "version": "2.0", "logging": { "applicationInsights": { "samplingSettings": { "isEnabled": true, "excludedTypes": "Request" }, "logLevel": { "default": "Information", "Azure.Messaging.ServiceBus": "Warning" } }, "logLevel": { "default": "Information", "Azure.Messaging.ServiceBus": "Warning" } } }
原因是异常在App Insights中按Error级别记录,常规logLevel配置无法覆盖异常的上报规则,同时不确定isExceptionSnappointsEnabled参数是否适用。
解决方案
1. 修正host.json配置,添加日志过滤规则
由于异常在App Insights中被标记为Exception类型,需通过filters规则针对目标命名空间做精准过滤,确保该命名空间下的Info级异常不会被上报。修改后的配置如下:
{ "version": "2.0", "logging": { "applicationInsights": { "samplingSettings": { "isEnabled": true, "excludedTypes": "Request" }, "filters": [ { "category": "Azure.Messaging.ServiceBus", "logLevel": { "default": "Warning" }, "excludeTypes": "Exception" } ] }, "logLevel": { "default": "Information", "Azure.Messaging.ServiceBus": "Warning" } } }
该配置的作用:
- 全局logLevel设置确保
Azure.Messaging.ServiceBus仅输出Warning及以上级别的日志 - Application Insights的
filters规则进一步排除该命名空间下的所有异常类型记录,彻底阻止Info级异常被上报
2. 关于isExceptionSnappointsEnabled参数
该参数用于控制是否启用异常快照收集功能,主要用于捕获异常发生时的调用栈、变量等调试信息,和日志/异常的过滤逻辑无关,因此不适用当前场景。
内容的提问来源于stack exchange,提问作者Luis Gouveia
相关产品推荐
相关产品推荐

