防止将特定异常记录到 App Insights

Preventing specific exceptions from being logged to App Insights

这是一个远景,Google 似乎没有任何接近的东西,但我想知道是否可以防止某些异常被记录到 App Insights?

我们的代码库中有很多地方会针对用户操作引发异常,而这些异常并不是我们希望在 App Insights 中显示的真正异常。

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

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

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

我正在使用 .NET Core 3.1。

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

是的,您可以使用 Telemetry Processor:

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

注册处理器