我有网址/users/myuser@gmail.com
。我不想在日志中记录实际的电子邮件。我能做些什么?
我真的很喜欢被记录,/users/m***r@gmail.com
但我只是不知道这是否可能以及如何。
更新
它是 ASP.net core 3.1 框架上的 ac#。
我有网址/users/myuser@gmail.com
。我不想在日志中记录实际的电子邮件。我能做些什么?
我真的很喜欢被记录,/users/m***r@gmail.com
但我只是不知道这是否可能以及如何。
它是 ASP.net core 3.1 框架上的 ac#。
您可以使用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>();
}