首页 > 解决方案 > 防止将特定异常记录到 App Insights

问题描述

这是一个很长的镜头,谷歌似乎没有什么接近的,但我想知道是否可以防止某些异常被记录到 App Insights 中?

在我们的代码库中有很多地方为用户操作引发了异常,而这些异常并不是我们想要在 App Insights 中显示的真正异常。

但是,更改发生这种情况的所有区域将花费很长时间,并且需要进行大量测试,因为我们需要确保逻辑流程不会改变

目前我们提出了 LocationDomainException 类型的异常,我想如果我遇到不想记录异常的地方,我们可以更改为 LocationDomainUserError

我需要停止这个异常,或者从它继承的任何异常被记录

我正在使用 .NET Core 3.1。

我很欣赏这有点反模式,但有人试过吗?

标签: c#azureexceptionazure-application-insightsappinsights

解决方案


是的,您可以使用遥测处理器

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>();


推荐阅读