#azure #.net-core #azure-application-insights #appinsights
#azure #.net-ядро #azure-application-insights #appinsights
Вопрос:
У меня есть URL /users/myuser@gmail.com
. Я не хочу регистрировать фактическую электронную почту в журналах. Что я могу сделать?
Мне действительно нравится регистрироваться /users/m***r@gmail.com
, но я просто не знаю, возможно ли это и как.
Обновить
Это c # на ASP.net базовая структура 3.1.
Комментарии:
1. какой у вас проект? Нравится. net core web или что-то еще?
2. @IvanYang Это на ядре dotnet 3.1. Также обновлен вопрос: 1:
3. Вы можете попробовать это с помощью инициализатора ITelemetryInitializer , чтобы посмотреть, можно ли изменить URL-адрес там.
4. Предположил бы, что это возможно, внедрив свой собственный
ITelemetryProcessor
и добавив его сservices.AddApplicationInsightsTelemetryProcessor<YourTelemetryProcessor>()
5. @AshkanSirous, если у вас все еще есть проблемы, пожалуйста, дайте мне знать. И если это полезно, пожалуйста, примите это как ответ:).
Ответ №1:
Вы можете использовать ITelemetryInitializer для его изменения.
Я пишу пример фрагмента кода для asp.net ядро. В целях тестирования я просто заменяю информацию (например, адрес электронной почты) в 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.in в методе Startup.cs -> ConfigureServices зарегистрируйте инициализатор ITelemetryInitializer:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddApplicationInsightsTelemetry();
//use this line of code to register.
services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();
}