Вы можете использовать ITelemetryProcessor для фильтрации нежелательных сообщений (включая трассировку).
1.Вы можете проверить свой проект локально с помощью аналитики приложения, а затем использовать Поиск аналитики приложения , чтобы проверить нежелательные сообщения трассировки, проверьте его CategoryName (или другое свойство, которое может указывать это), как на скриншоте ниже:
2.Создайте пользовательский класс, который реализует ITelemetryProcessor. Здесь я использую CategoryName для фильтрации нежелательных сообщений трассировки, вы можете настроить код самостоятельно:
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;
namespace WebApplication1netcore4
{
public class MyTelemetryProcessor : ITelemetryProcessor
{
private ITelemetryProcessor Next { get; set; }
public MyTelemetryProcessor(ITelemetryProcessor next)
{
this.Next = next;
}
public void Process(ITelemetry telemetry)
{
TraceTelemetry trace = telemetry as TraceTelemetry;
if (trace != null && trace.Context.Properties.Keys.Contains("CategoryName"))
{
//Here I just filter out 2 kinds of trace messages, you can adjust your code as per your need.
if (trace.Context.Properties["CategoryName"] == "Microsoft.AspNetCore.Hosting.Internal.WebHost" || trace.Context.Properties["CategoryName"] == "Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker")
{
//return means abandon this trace message which has the specified CategoryName
return;
}
}
if (trace == null)
{
this.Next.Process(telemetry);
}
if (trace != null)
{
this.Next.Process(trace);
}
}
}
}
3.В методе Startup.cs -> ConfigureServices () добавьте следующий код:
services.AddApplicationInsightsTelemetry();
services.AddApplicationInsightsTelemetryProcessor<MyTelemetryProcessor>();
4.После проверки вы увидите, что нежелательные сообщения трассировки отфильтрованы.