C# 在尝试连接到已删除的cosmos db时,是否有任何方法限制Appinsight的错误日志记录

C# 在尝试连接到已删除的cosmos db时,是否有任何方法限制Appinsight的错误日志记录,c#,azure,azure-cosmosdb,azure-application-insights,C#,Azure,Azure Cosmosdb,Azure Application Insights,我正在使用azure cosmos db保存一些数据。我无法更改应用程序中Azure cosmos db的连接字符串和所有其他详细信息 如果Azure cosmos db被删除,我已经添加了一个try-catch块,以便在尝试连接到Azure cosmosdb并将其登录到Azure AppInsight遥测时捕获异常 但是,在记录此异常的同时,我还记录了多个System.Net.Sockets.SocketException 我尝试调试代码,但找不到此异常的根位置,并且由于异常登录到azure

我正在使用azure cosmos db保存一些数据。我无法更改应用程序中Azure cosmos db的连接字符串和所有其他详细信息

如果Azure cosmos db被删除,我已经添加了一个try-catch块,以便在尝试连接到Azure cosmosdb并将其登录到Azure AppInsight遥测时捕获异常

但是,在记录此异常的同时,我还记录了多个
System.Net.Sockets.SocketException

我尝试调试代码,但找不到此异常的根位置,并且由于异常登录到azure appinsight会有一些延迟,我无法确定生成异常的位置

我想做的是最小化相同异常的日志记录,或者尽可能忽略它


提前感谢

是的,您可以使用
遥测处理器
过滤遥测数据。看

下面是一个从日志中排除所有SocketException的示例。您可以编写自己的逻辑来决定排除什么

公共类ExceptionTelemetryFilter:ITelemetryProcessor
{
私有只读ITelemetryProcessor\u next;
公共例外TelemetryFilter(ITelemetryProcessor next)
{
_下一个=下一个;
}
/// 
///从日志中排除SocketException
/// 
/// 
公共作废流程(ITelemetry项)
{
if(!(项为异常遥测异常)//如果不是异常
||!(exception.exception是SocketException))//或者它不是SocketException
_next.Process(item);//然后通过沿处理管道发送来记录该项
}
}
需要注意的是,如果要从日志中排除某个项目,则不应调用
\u next.Process(item)

现在,将其包括在服务集合中,以便应用程序洞察了解它。对于.Net Core,此操作如下所示:

public void配置服务(IServiceCollection服务)
{
...
services.AddApplicationInsightsTelemetry();
AddApplicationInsightsTelemetryProcessor();
...
}

注意:如何注册处理器取决于应用程序的类型。有关选项,请参阅顶部的链接文档。

您能在问题中的日志中添加输出吗?