Protokollierung und Ablaufverfolgung

Verwenden Sie eine Verfolgung, um Fehler bei einem Plug-In oder einer benutzerdefinierten Workflowaktivität (benutzerdefiniertem Code) zu beheben. Die Ablaufverfolgung unterstützt Entwickler durch die Aufzeichnung von Informationen zur Laufzeit als Hilfe bei der Ursachendiagnose für Codefehler. Die Ablaufverfolgung wird für synchrone oder synchrone Ausführung unterstützt.

Die Aufzeichnung von Ablaufverfolgungsinformationen zur Laufzeit für Microsoft Dataverse wird von einem Dienst namens ITracingService bereitgestellt. Die Informationen, die für diesen Dienst durch benutzerdefinierten Code bereitgestellt werden, können an drei verschiedenen Orten erfasst werden, wie hier identifiziert.

  • Ablaufverfolgungsprotokoll

    Trace-Log-Datensätze werden in die PluginTraceLog-Tabelle geschrieben. Das Schreiben dieser Datensätze wird über die Ablaufverfolgungseinstellungen gesteuert, die in Ablaufverfolgungsprotokollierung aktivieren beschrieben werden.

    Diese Daten können in modellgesteuerten Anwendungen gefunden werden, indem Sie zu Einstellungen navigieren und die Kachel Plug-In-Ablaufverfolgungsprotokoll auswählen. Die Kachel ist nur sichtbar, wenn Sie in Ihrer zugewiesenen Sicherheitsrolle Zugriff auf die Datensätze der Trace-Log-Tabelle haben.

    Sie finden es möglicherweise einfacher, diese Daten mit der Web-API in Ihrem Browser unter Anwendung des Beispiels abzurufen, das unter Ablaufverfolgung verwenden dargestellt wird, oder indem Sie das Plug-in Trace-Viewer-Community-Tool verwenden.

    Wichtig

    Die Ablaufverfolgungsprotokollierung erfordert Organisationsspeicherplatz, insbesondere wenn viele Ablaufverfolgungen und Ausnahmen generiert werden. Sie sollten die Ablaufverfolgungsprotokollierung nur für das Debugging und die Problembehandlung aktivieren, und deaktivieren, wenn die Überprüfung abgeschlossen ist.

  • Fehlerdialogfeld

    Ein synchrones registriertes Plug-In oder eine benutzerdefinierte Workflowaktivität, die eine Ausnahme von der Plattform zurückgibt, führt zu einem Fehlerdialogfeld in der Webanwendung, die dem angemeldeten Benutzer angezeigt wird. Der Benutzer kann die Schaltfläche Protokolldatei herunterladen im Dialogfeld auswählen, um das Protokoll mit der Ausnahme und der Ablaufverfolgungsausgabe anzuzeigen.

  • Systemauftrag

    Bei asynchronen registrierten Plug-Ins oder benutzerdefinierten Workflowaktionen, die eine Ausnahme zurückgeben, werden die Ablaufverfolgungsinformationen im Bereich Details des Systemauftrag-Formulars in der Webanwendung angezeigt.

Ablaufverfolgungsprotokollierung aktivieren

Ob Trace-Logs geschrieben werden, hängt vom Wert der Organisation Tabelle PluginTraceLogSetting Spalte ab.

Um die Ablaufverfolgungsprotokollierung zu aktivieren, können Sie diesen Wert programmatisch aktualisieren oder in der Webanwendung zu Einstellungen > Verwaltung > Systemeinstellungen navigieren. Auf der Registerkarte Anpassung suchen Sie das Dropdownmenü namens Protokollierung in Plug-in-Ablaufverfolgungsprotokoll aktivieren und wählen Sie eine der verfügbaren Optionen aus.

Value Option Beschreibung
0 Deaktiviert Das Schreiben in das Ablaufverfolgungsprotokoll ist deaktiviert. Kein PluginTraceLog Datensatz wird erstellt. Allerdings kann benutzerdefinierter Code weiter die Trace(String, Object[])-Methode aufrufen, auch wenn noch kein Protokoll geschrieben wurde.
1 Ausnahmen Ablaufverfolgungsinformationen werden in das Protokoll geschrieben, wenn eine Ausnahme wieder an die Plattform von benutzerdefiniertem Code zurückgegeben wird.
2 Alle Ablaufverfolgungsinformationen werden bei Fertigstellung von Code in das Protokoll geschrieben, oder wenn eine Ausnahme wieder an die Plattform von benutzerdefiniertem Code zurückgegeben wird.

Wenn die Ablaufverfolgungsprotokollierungs-Einstellung auf Ausnahme gesetzt ist und benutzerdefinierter Code eine Ausnahme wieder zur Plattform zurückgibt, wird ein Ablaufverfolgungsprotokolldatensatz erstellt und Ablaufverfolgungsinformationen werden zudem an einen anderen Ort geschrieben. Bei benutzerdefiniertem Code, der synchron ausgeführt wird, werden die Informationen in einem Fehlerdialogfeld dem Benutzer angezeigt; andernfalls, für asynchronen Code, werden die Informationen in den verknüpften Systemauftrag geschrieben.

Schreiben in den Ablaufverfolgungsdienst

Bevor Sie in den Ablaufverfolgungsdienst schreiben, müssen Sie erst das Ablaufverfolgungsdienstobjekt aus dem übergebenen Ausführungskontext extrahieren. Danach fügen Sie ggf. einfach Trace(String, Object[])-Aufrufe benutzerdefiniertem Code hinzu, wobei alle relevanten Diagnoseinformationen in diesem Methodenaufruf übergeben werden.

//Extract the tracing service for use in debugging plug-ins.
ITracingService tracingService =
    (ITracingService)serviceProvider.GetService(typeof(ITracingService));

// Use the tracing service 
tracingService.Trace("Write your message here.");

Entwickeln Sie anschließend das Plug-In oder die benutzerdefinierte Workflowaktion und stellen Sie diese(s) bereit. Während der Ausführung des angepassten Codes werden die in den Trace-Methodenaufrufen bereitgestellten Informationen in einen Datensatz der Trace-Log-Tabelle von ITracingService geschrieben, wenn dies von Ihrer Organisation unterstützt wird und aktiviert ist, und können dem Benutzer auch in einem Web-Dialog oder System-Job zur Verfügung gestellt werden, wie im vorherigen Abschnitt beschrieben. Die Ablaufverfolgungsinformationen, die in das Ablaufverfolgungsprotokoll geschrieben werden, werden in den Ablaufverfolgungseinstellungen konfiguriert. Weitere Informationen finden Sie unter Trace-Logging aktivieren.

Hinweis

Wenn Ihr angepasster Code innerhalb einer Datenbanktransaktion ausgeführt wird und eine Ausnahme auftritt, die einen Transaktions-Rollback verursacht, werden alle Tabellendatenänderungen durch Ihren Code rückgängig gemacht. Die PluginTraceLog-Datensätze bleiben jedoch bis zum Fertigstellen des Rollbacks vorhanden.

Zusätzliche Informationen über den Tracing-Dienst

Der ITracingService verarbeitet stapelweise die Informationen, die dafür über die Ablaufverfolgungs -Methode bereitgestellt werden. Die Informationen werden in einen neuen PluginTraceLog-Datensatz geschrieben, wenn benutzerdefinierter Code erfolgreich zum Abschluss ausgeführt oder eine Ausnahme ausgelöst wurde.

Jeder Trace-Aufruf wird als eine neue Zeile in der Spalte PluginTraceLog MessageBlock protokolliert. Es kann nur Text mit einer Größe von 10 KB erstellt werden. Ältere Trace-Zeilen werden entfernt, um diesen Grenzwert einzuhalten, sodass nur die neuesten Zeilen gespeichert werden.

PluginTraceLog-Datensätze haben eine begrenzte Gültigkeitsdauer. Ein Massenlöschungs-Hintergrundauftrag wird einmal täglich ausgeführt, um Datensätze zu löschen, die älter als 24 Stunden seit der Erstellung sind.

Achtung

Während dieser Auftrag deaktiviert oder die Häufigkeit, mit dem er auftritt, angepasst werden kann, wird häufig festgestellt, dass ein fehlendes Zurücksetzen auf die ursprüngliche Einstellung der Grund für spätere Leistungsprobleme ist.

Community-Tools

Plug-in Trace-Viewer

Plugin Trace Viewer ist ein Tool, das von der XrmToolBox Community entwickelt wurde. Weitere Informationen finden Sie im Thema Community-Tools für Dataverse für von der Community entwickelte Tools.

Hinweis

Die Communitytools sind kein Produkt von Microsoft und es wird kein Support für die Communitytools angeboten. Wenn Sie Fragen zu dem Tool haben, setzen Sie sich bitte mit dem Herausgeber in Verbindung. Weitere Informationen: XrmToolBox.

Siehe auch

Plug-Ins
Debuggen Sie ein Plug-In
Ablaufverfolgungsprotokolle anzeigen
Ablaufverfolgungsdienst
PluginTraceLog-Tabelle

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).