Loggen eigener Werte mit Azure Application Insights
Um eigene Werte in Application Insights loggen zu können, muss ein eigener ITelemetryInitializer
erzeugt werden. Dieser dient nun dazu, dass der entsprechende Log-Kontext um Informationen angereichert werden können:
public class MyCustomTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
if (telemetry is RequestTelemetry requestTelemetry) // wenn ich nur Request Telemtry erweitern möchte
{
requestTelemetry.Context.GlobalProperties.Add("MyLogField",
"MyLogValue");
}
}
}
Dieser muss anschließend noch registriert werden
services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
Achtet bei der Implementierung darauf, dass der Wert als String gespeichert wird. Das bedeutet, dass entsprechend eine neutrale Lokalisierung verwendet werden sollte und auch Zeitstempel sich nach ISO8601 orientieren sollten!