0

我有网址/users/myuser@gmail.com。我不想在日志中记录实际的电子邮件。我能做些什么?

我真的很喜欢被记录,/users/m***r@gmail.com但我只是不知道这是否可能以及如何。

更新

它是 ASP.net core 3.1 框架上的 ac#。

4

1 回答 1

1

您可以使用ITelemetryInitializer 对其进行修改。

我为 asp.net core 编写了一个示例代码片段。出于测试目的,我只是替换了 url 中的信息(如电子邮件)。请随时更改它以满足您的需要。

1.添加一个新类,并使用以下代码实现它:

public class MyTelemetryInitializer : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        var requestTelemetry = telemetry as RequestTelemetry;
       
        if (requestTelemetry == null) return;

        if (requestTelemetry.Url.ToString().Contains("Home"))
        {
            string str1 = requestTelemetry.Url.ToString();

            //for test purpose, it is just replaced here.
            Uri uri = new Uri(requestTelemetry.Url.ToString().Replace("Home", "myhome222"));
            requestTelemetry.Url = uri;

            //it will also be shown in the Name and Operation_name, you should write your logic to do that.
            //requestTelemetry.Name = "";
            //requestTelemetry.Context.Operation.Name = "";
        }         
        
    }
}

2. 在 Startup.cs -> ConfigureServices 方法中,注册 ITelemetryInitializer:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllersWithViews();
        services.AddApplicationInsightsTelemetry();

        //use this line of code to register.
        services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();
    }
于 2020-09-29T06:37:44.567 回答