Erstellen von benutzerdefinierten Listenern für Überwachen, Diagnose und Ablaufverfolgungen
Veröffentlicht: November 2016
Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016
Mit einem Listener können Sie das Ereignisprotokoll auf Dateien, das Ereignisprotokol oder andere Quellen beziehen. Bis zur vorherigen Version von Unified Service Desk konnten Sie nur Standard-Listener zur Erstellung von Überwachung-, Diagnose- und Nachverfolgungsprotokollen in Unified Service Desk verwenden.
Mit Unified Service Desk 2.0 können Sie benutzerdefinierte Listener konfigurieren, um die Überwachungs-, Diagnose- und Ablaufverfolgungsdaten zu protokollieren. Geben Sie einen benutzerdefinierten Listener an, an, indem Sie das neue gehostete Steuerelement von Typ Listener-gehostetes Steuerelement verwenden, der einen Verweis auf die Assembly enthält (.dll Datei), die Ihren benutzerdefinierten Listenercode enthält.
In diesem Thema
Was umfasst die Erstellung benutzerdefinierter Listenern?
Definieren des benutzerdefinierten Listeners für Unified Service Desk
Vorbereiten der Verteilung Ihres Beispielcodes
Erstellen von listenergehosteten Kontrollinstanzen zur Verwendung Ihres benutzerdefinierten Listenercodes
Nächste Schritte für den Administrator
Was umfasst die Erstellung benutzerdefinierter Listenern?
Für das Erstellen und Verwenden benutzerdefinierter Listen in Unified Service Desk müssen Entwickler und Administratoren zusammenarbeiten. In der folgenden Tabelle wird der Prozess dargelegt.
Schritt |
Wer führt das aus? |
Aufgabe |
Hier finden Sie die Information |
---|---|---|---|
1 |
Entwickler |
Schreiben von Code für Ihre benutzerdefinierten Listener. |
Definieren des benutzerdefinierten Listeners für Unified Service Desk |
2 |
Entwickler |
Komprimieren Sie die Assembly in einer .zip Datei, um eine Anpassungsdatei für Unified Service Desk zu erstellen. |
Vorbereiten der Verteilung Ihres Beispielcodes |
3 |
Entwickler/Administrator |
Erstellen Sie Instanzen des Gehosteten Listener-Steuerelements zur Verwendung Ihres benutzerdefinierten Listenercodes. |
Erstellen von listenergehosteten Kontrollinstanzen zur Verwendung Ihres benutzerdefinierten Listenercodes |
4 |
Administrator |
Erstellen Sie Instanzen von Datensätzen zu Überwachungs-u. Diagnosen-Einstellungen, um Ihre Überwachung, Diagnosen oder Informationen zu Ablaufverfolgungsprotokollierung zu konfigurieren. |
TechNet: Konfigurieren der Überwachung und Diagnose in Unified Service Desk |
5 |
Administrator |
Erstellen Sie Anpassungsdateien, und fügen Sie die .zip Datei an, die der Entwickler in Schritt 2 erstellt hat. |
TechNet: Bereitstellung benutzerdefinierter Steuerelemente unter Verwendung von Anpassungsdateien |
6 |
Administrator |
Fügen Sie den Datensatz Anpassungs-Dateien zur entsprechenden Instanz der Entität Konfiguration hinzu. |
TechNet: Zuordnen von Überwachung und Diagnose zu einer Konfiguration |
Definieren des benutzerdefinierten Listeners für Unified Service Desk
Sie können für den benutzerdefinierten Listener den Code für das Überwachen, Diagnostizieren und Ablaufverfolgungsprotokollieren in einer einzelnen Assembly oder in verschiedenen Assemblys kombinieren. Klasse die Ihren Listenercode enthält, muss gestellt werden durch:
IAuditService für die Überwachung von Protokollen
ILogging für Diagnoseprotokolle
TraceListener für Ablaufverfolgungsprotokolle
Hinweis
Erstellen Sie eine Notiz des Namensraums und des Klassennamens im Listenercode. Sie benötigen diese, um Instanzen des Listener-gehostetes Steuerelements zu erstellen, die Ihrem benutzerdefinierten Code entsprechen.
Benutzerdefinierter Listener für Überwachungsprotokolle
Der folgende Beispielcode zeigt, wie Sie einen benutzerdefinierten Listener erstellen, der Überwachungsdaten in die USDAudit.log-Datei im C:\USDLogs-Ordner schreibt.
using Microsoft.Uii.AifServices;
using Microsoft.Uii.Common.Entities;
using Microsoft.Uii.Common.Logging;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SampleCustomUSDListener
{
public class CustomUSDAuditListener : IAuditService
{
public void SaveAudit(IEnumerable<Microsoft.Uii.Common.Entities.LogData> logCache)
{
LogToFile(logCache);
}
private void LogToFile(IEnumerable<LogData> logCache)
{
string filename = Path.GetPathRoot(Environment.SystemDirectory) + "USDLogs\\USDAudit.log";
foreach (var item in logCache)
{
try
{
File.AppendAllText(filename, item.GetLogData());
}
catch (Exception ex)
{
Logging.Error("USD",ex.StackTrace);
}
}
}
}
}
Benutzerdefinierter Listener für Diagnoseprotokolle
Der folgende Beispielcode zeigt, wie Sie einen benutzerdefinierten Listener erstellen, der Diagnosedaten in die USDDiagnostics.log-Datei im C:\USDLogs-Ordner schreibt.
using Microsoft.Uii.Common.Logging;
using Microsoft.Uii.Common.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Configuration;
using System.Threading.Tasks;
namespace SampleCustomUSDListener
{
class CustomUSDDiagnosticListener : ILogging
{
string filename = Path.GetPathRoot(Environment.SystemDirectory) + "USDLogs\\USDDiagnostics.log";
public void Error(string applicationName, string message, string advanced)
{
File.AppendAllText(filename, "\nError is logged\n" + "\nApplication Name:\n" + applicationName + "\nMessage:\n" + message + "\nAdvanced:\n" + advanced);
}
public void Information(string applicationName, string message)
{
File.AppendAllText(filename, "\nInformation is logged\n" + "\nApplication Name:\n" + applicationName + "\nMessage:\n" + message);
}
public void Initialize(string name, System.Collections.Specialized.NameValueCollection configValue)
{
//Not needed
}
public bool ShowErrors
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
public string Tag
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
public void Trace(string applicationName, string message)
{
File.AppendAllText(filename, "\nVerbose is logged\n" + "\nApplication Name:\n" + applicationName + "\nMessage:\n" + message);
}
public void Warn(string applicationName, string message)
{
File.AppendAllText(filename, "\nWarning is logged\n" + "\nApplication Name:\n" + applicationName + "\nMessage:\n" + message);
}
}
}
Benutzerdefinierter Listener für Nachverfolgungsprotokolle
Der folgende Beispielcode zeigt, wie Sie einen benutzerdefinierten Listener erstellen, der Ablaufverfolgungsdaten in die USDTraces.log-Datei im C:\USDLogs-Ordner schreibt.
using System;
using System.Diagnostics;
using System.IO;
namespace SampleCustomUSDListener
{
class CustomUSDTraceListener : TraceListener
{
string filename = Path.GetPathRoot(Environment.SystemDirectory) + "USDLogs\\USDTraces.log";
public override void Write(string message)
{
File.AppendAllText(filename, message);
}
public override void WriteLine(string message)
{
File.AppendAllText(filename, message);
}
}
}
Vorbereiten der Verteilung Ihres Beispielcodes
Nachdem Sie einen benutzerdefinierten Kunden-Listenercode in eine Assembly (.dll)-Datei integriert haben, wenden Sie sich an den Administrator, um Ihren Code an die Clientcomputern zu verteilen, sodass sie Ihre benutzerdefinierten Listener nutzen können. Um die angepassten Dateien zu verteilen, komprimieren Sie die Dateien zusammen mit einer [Content_Types].xml-Datei in eine .zip-Datei und stellen Sie die .zip-Datei Ihrem Administrator zum Anhängen an den Customization Files-Datensatz zur Verfügung. Siehe Nächste Schritte für den Administrator.
Die [Content_Types].xml Datei bietet MIME-Typ-Informationen zur Dateityperweiterungen, die enthalten sind in der .zip Datei. In der Regel sind die Dateitypen: .config, .dll, .exe und .xml. Allerdings können Sie einen beliebigen Dateityp einschließen, der unter Windows in der Datei [Content_Types].xml und in der Datei zip unterstützt wird.
Hier ist eine [Content_Types].xml-Beispieldatei mit Dateitypen, die üblicherweise für die Anpassung von Unified Service Desk verwendet werden:
<?xml version="1.0" encoding="utf-8"?>
<Types xmlns="https://schemas.openxmlformats.org/package/2006/content-types">
<Default Extension="config" ContentType="application/octet-stream" />
<Default Extension="dll" ContentType="application/octet-stream" />
<Default Extension="exe" ContentType="application/octet-stream" />
<Default Extension="xml" ContentType="application/octet-stream" />
</Types>
Erstellen von listenergehosteten Kontrollinstanzen zur Verwendung Ihres benutzerdefinierten Listenercodes
Mit dem neuen gehosteten Listener-Steuerelement in Unified Service Desk können Sie auf Ihren benutzerdefinierten Listenercode verweisen und diesen beim Protokollieren wie durch Ihren Code festgelegt verwenden. Der Assembly-Info Bereich im neuen gehosteten Steuerelement Bildschirm ermöglicht Ihnen die Angabe der Details über Ihre Assembly, die Sie mit Bezug auf Listener-gehostetes Steuerelement haben möchten. Geben Sie den Namen der (.dll) Assemblys im Feld Assembly-URI auf <AssemblyName>.<ClassName> und dem Feld Assemblytyp an. Der <ClassName> , muss die Klasse sein die Ihren Code enthält.
Wenn wir beispielsweise den weiter oben aufgeführten Beispielcode für benutzerdefinierte Listener berücksichtigen und davon ausgehen, dass alle Beispielcodes in einer einzelnen Assembly namens SampleCustomUSDListener.dll kompiliert werden, müssen Sie in den Feldern Assembly-URI und Assemblytyp einen listenergehosteten Datensatz für Überwachung, Diagnose und Ablaufverfolgung mit den folgenden Werten eingeben.
Überwachung |
Diagnose |
Ablaufverfolgung |
---|---|---|
|
|
|
Speichern Sie Datensätze des gehosteten Steuerelements des Listener.
Nächste Schritte für den Administrator
Als Administrator sollten Sie nun die zwei folgenden Schritte ausführen, um den benutzerdefinierten Listenercode in Ihrer Organisation zu verwenden:
Erstellen Sie Datensätze für Überwachungs-u. Diagnosen-Einstellungen und fügen Sie den entsprechenden Datensatz des listenergehosteten Steuerelements an.Weitere Informationen:TechNet: Konfigurieren der Überwachung und Diagnose in Unified Service Desk
Verwenden Sie die ZIP-Datei, um einen Anpassungs-Dateien-Datensatz zu erstellen und diesen dem entsprechenden Konfigurations-Datensatz dann als Anlage hinzuzufügen. So kann das Assembly beim Anmelden am Dynamics 365 Server mithilfe des Unified Service DeskClients auf die Clientcomputern verteilt werden.Weitere Informationen:TechNet: Bereitstellung benutzerdefinierter Steuerelemente unter Verwendung von Anpassungsdateien
Siehe auch
Unified Service Desk erweitern
Unified Service Desk 2.0
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright