c# - 防止将特定异常记录到 App Insights
问题描述
这是一个很长的镜头,谷歌似乎没有什么接近的,但我想知道是否可以防止某些异常被记录到 App Insights 中?
在我们的代码库中有很多地方为用户操作引发了异常,而这些异常并不是我们想要在 App Insights 中显示的真正异常。
但是,更改发生这种情况的所有区域将花费很长时间,并且需要进行大量测试,因为我们需要确保逻辑流程不会改变
目前我们提出了 LocationDomainException 类型的异常,我想如果我遇到不想记录异常的地方,我们可以更改为 LocationDomainUserError
我需要停止这个异常,或者从它继承的任何异常被记录
我正在使用 .NET Core 3.1。
我很欣赏这有点反模式,但有人试过吗?
解决方案
是的,您可以使用遥测处理器:
public class CustomTelemetryFilter : ITelemetryProcessor
{
private readonly ITelemetryProcessor _next;
public CustomTelemetryFilter(ITelemetryProcessor next)
{
_next = next;
}
public void Process(ITelemetry item)
{
// Example: process all exceptions except LocationDomainException
var isSomeException = item is ExceptionTelemetry ex && ex.Exception is LocationDomainException;
if (!isSomeException)
_next.Process(item); // Process the item
else
{
// Item is dropped here
}
}
}
使用注册处理器services.AddApplicationInsightsTelemetryProcessor<CustomTelemetryFilter>();
推荐阅读
- r - Openxlsx:在现有工作表上添加新行
- r - 我如何映射一些向量以在闪亮的应用程序中呈现多个输出?
- powershell - Powershell Switch 参数接受参数
- php - 使用 Laravel 导入 CSV 数据
- ruby-on-rails - 循环直到有parent_id
- c# - c# excel表格排序|| 如何排除缺少特定单元格的行
- wso2 - 限制 WSO2 api 管理器中的应用程序数量
- flutter - 数据为空但不为空时Flutter Screen Auto Pop off
- python - discord.py 通过命令创建新命令
- reactjs - 在单独的样式类中设置 CSS 未反映在 UI 中