Изменить ключ инструментария для входа в ASP.NET Core с помощью Application Insights
Есть ли способ переключить ключ инструментария в процессе выполнения на основе некоторой бизнес-логики для целевого назначения журнала для различных экземпляров Application Insights.
Поскольку мы настраиваем Application Insights для использования в качестве регистратора в стартовом проекте, я не могу найти какой-либо нестандартный подход или взломать обходной путь для этого требования.
Вышеупомянутое переключение может быть легко выполнено, если я использую Application Insight в качестве клиента телеметрии, потому что в этом случае я могу предоставить клиенту различные ключи инструментария во время выполнения, что не то же самое для ILogger, вводимого с использованием встроенного DI ASP..NET Core.
2 ответа
Напишите инициализатор для условного переопределения ключа инструментария, как показано ниже:
class MyTelemetryInstrumentationKeyOverrider : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
// conditionally do this.
telemetry.Context.InstrumentationKey = "newkey";
}
}
Это необходимо сделать в момент запуска приложения, в этом случае ДА. но после запуска приложения изменить нельзя.
Вы можете посмотреть ключ динамического инструментария
protected void Application_Start()
{
Microsoft.ApplicationInsights.Extensibility.
TelemetryConfiguration.Active.InstrumentationKey =
// - for example -
WebConfigurationManager.AppSettings["ikey"];