In meinem CRM 365-Plugin muss ich Protokolle in Application Insight schreiben. Dies kann ich mithilfe von ILogger und der Microsoft.Xrm.Sdk.PluginTelemetry Library erreichen. Es fällt mir jedoch schwer, Protokolldetails in die benutzerdefinierte App Insight-Dimension zu schreiben.
Ich habe bereits mehrere Ansätze ausprobiert, erhalte aber immer noch nicht das erwartete Ergebnis.
- Verwenden Sie AddCustomProperty
ILogger logger = (ILogger)serviceProvider.GetService(typeof(ILogger));
logger.AddCustomProperty("Environment", "DEV");
logger.AddCustomProperty("Type", "CustomAction");
Das Ergebnis dieser benutzerdefinierten Dimension hat nur CategoryName aus der BeginScope-Methode
- Wörterbuch zu BeginScope hinzufügen
Code: Select all
ILogger logger = (ILogger)serviceProvider.GetService(typeof(ILogger));
var customProps = new Dictionary
{
{ "Environment", "DEV" },
{ "Type", "CustomAction" }
};
using (logger.BeginScope(customProps))
Das Ergebnis davon in meiner CustomDimenstion: In CategoryName wird keine weitere Eigenschaft erstellt, diese wird stattdessen in CategoryName gespeichert.
Code: Select all
OptionListGetCustomAction Scope => System.Collections.Generic.Dictionary2[System.String,System.String
Ich denke darüber nach, alle meine benutzerdefinierten Dimensionen in String-JSON zu speichern, möchte aber noch einmal überprüfen, wie sich Microsoft.Xrm.Sdk.PluginTelemetry verhält.