Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit einem Listener können Sie die Protokollausgabe auf Dateien, das Ereignisprotokoll oder andere Quellen ausrichten. Bis zur vorherigen Version von Unified Service Desk konnten Sie die Standard-Listener nur zum Schreiben von Überwachungs-, Diagnose- und Ablaufverfolgungsprotokollen in Unified Service Desk verwenden.
Mit Unified Service Desk 2.0 können Sie benutzerdefinierte Listener konfigurieren, um Überwachungs-, Diagnose- und Ablaufverfolgungsdaten zu protokollieren. Geben Sie einen benutzerdefinierten Listener an, indem Sie den neuen Typ eines gehosteten Steuerelements mit dem Namen Listener Hosted Control verwenden, das einen Verweis auf die Assembly (.dll Datei) enthält, die den benutzerdefinierten Listenercode enthält.
Was beinhaltet das Erstellen von benutzerdefinierten Listenern?
Beim Erstellen und Verwenden von benutzerdefinierten Listenern in Unified Service Desk arbeiten Entwickler und Administratoren zusammen. In der folgenden Tabelle wird der Prozess beschrieben.
Schritt | Wer macht das? | Aufgabe | Siehe hier |
---|---|---|---|
1 | Entwickler | Schreiben Sie Code für Ihren benutzerdefinierten Listener. | Definieren Sie Ihren benutzerdefinierten Listener für Unified Service Desk |
2 | Entwickler | Komprimieren Sie die Assembly in eine .zip Datei, um eine Anpassungsdatei für Unified Service Desk zu erstellen. | Vorbereiten der Verteilung des Beispielcodes |
3 | Entwickler/Administrator | Erstellen Sie Instanzen des Gehosteten Listener-Steuerelements zur Verwendung Ihres benutzerdefinierten Listenercodes. | Erstellen von Listener-gehosteten Kontrollinstanzen, um Ihren benutzerdefinierten Listenercode zu verwenden |
4 | Administrator | Erstellen Sie Instanzen des Datensatzes Überwachungs- und Diagnoseeinstellungen, um Ihre Überwachungs-, Diagnose- oder Protokollierungsinformationen zu konfigurieren. | Konfigurieren von Überwachung und Diagnose in Unified Service Desk |
5 | Administrator | Erstellen Sie Anpassungsdateien und hängen Sie die .zip Datei an, die vom Entwickler in Schritt #2 erstellt wurde. | Verteilen von benutzerdefinierten gehosteten Steuerelementen mithilfe von Anpassungsdateien |
6 | Administrator | Fügen Sie den Datensatz "Customization Files " an die entsprechende Instanz der Configuration-Entität an. | Auditierung und Diagnose einer Konfiguration zuordnen |
Definieren Sie Ihren benutzerdefinierten Listener 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. Die Klasse, die den Listenercode enthält, muss von Folgendem abgeleitet werden:
IAuditService für die Überwachung von Protokollen
ILogging für Diagnoseprotokolle
TraceListener für Ablaufverfolgungsprotokolle
Hinweis
Notieren Sie sich den Namespace und die Klassennamen im Listenercode. Sie benötigen diese, um Instanzen des vom Listener gehosteten Steuerelements zu erstellen, die auf Ihren benutzerdefinierten Code verweisen.
Benutzerdefinierter Listener für Überwachungsprotokolle
Der folgende Beispielcode veranschaulicht, wie ein benutzerdefinierter Listener erstellt wird, der Überwachungsdaten in USDAudit.log Datei im Ordner C:\USDLogs 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 veranschaulicht, wie ein benutzerdefinierter Listener erstellt wird, der Diagnosedaten in die USDDiagnostics.log Datei im Ordner C:\USDLogs 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 Trace-Logs
Der folgende Beispielcode veranschaulicht, wie ein benutzerdefinierter Listener erstellt wird, der Ablaufverfolgungsdaten in die USDTraces.log Datei im Ordner C:\USDLogs 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 des Beispielcodes
Nachdem Sie den benutzerdefinierten Listenercode in eine Assemblydatei (.dll) erstellt haben, arbeiten Sie mit Ihrem Administrator zusammen, um den Code an die Clientcomputer zu verteilen, damit diese Ihre benutzerdefinierten Listener nutzen können. Um Ihre benutzerdefinierten 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 zur Verfügung, um sie an einen Customization Files
Datensatz anzuhängen. Weitere Informationen finden Sie unter Nächste Schritte für Administratoren.
Die.xml Datei [Content_Types] enthält Informationen zum MIME-Typ der Dateityperweiterungen, die in der .zip Datei enthalten sind. In der Regel sind die Dateitypen: .config, .dll, .exeund .xml. Sie können jedoch jeden Dateityp, der unter Windows unterstützt wird, in die.xml-Datei [Content_Types] und in die ZIP-Datei aufnehmen.
Im Folgenden finden Sie ein Beispiel für eine [Content_Types].xml-Datei mit aufgelisteten Dateitypen, die normalerweise zum Anpassen 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 Listener-gehosteten Kontrollinstanzen, um Ihren benutzerdefinierten Listenercode zu verwenden
Mit dem neuen Listener-gehosteten Steuerelement in Unified Service Desk können Sie auf Ihren benutzerdefinierten Listener-Code verweisen und diesen verwenden, um Daten gemäß Ihrem Code zu protokollieren. Im Bereich Assembly Info auf dem neuen Bildschirm des gehosteten Steuerelements können Sie die Details zu Ihrer Assembly angeben, auf die das gehostete Listener-Steuerelement verweisen soll. Geben Sie den Namen der Assembly (.dll) in das Feld Assembly-URI und <AssemblyName> ein.<ClassName> im Feld Baugruppentyp . ClassName<> sollte die Klasse sein, die den Code enthält.
Wenn wir z. B. den Beispielcode für benutzerdefinierte Listener weiter oben in diesem Thema betrachten und davon ausgehen, dass alle Beispielcodes in einer einzelnen Assembly mit dem Namen SampleCustomUSDListener.dllkompiliert sind, müssen Sie jeweils einen vom Listener gehosteten Steuerelementdatensatz für die Überwachung, Diagnose und Ablaufverfolgung mit den folgenden Werten in den Feldern Assembly-URI und Assemblytyp erstellen.
Überwachung | Diagnostik | Trace |
---|---|---|
- Assembly-URI: SampleCustomUSDListener - Assembly-Typ: SampleCustomUSDListener.CustomUSDAuditListener |
- Assembly-URI: SampleCustomUSDListener - Assembly-Typ: SampleCustomUSDListener.CustomUSDDiagnosticListener |
- Assembly-URI: SampleCustomUSDListener - Assembly-Typ: SampleCustomUSDListener.CustomUSDTraceListener |
Speichern Sie die vom Listener gehosteten Steuerelementdatensätze.
Nächste Schritte für Administratoren
Als Administrator sollten Sie jetzt die folgenden zwei Schritte ausführen, um den benutzerdefinierten Listenercode in Ihrer Organisation zu verwenden:
Erstellen Sie Datensätze für Überwachungs- und Diagnoseeinstellungen , und fügen Sie den entsprechenden vom Listener gehosteten Kontrolldatensatz an. Weitere Informationen: Konfigurieren von Überwachung und Diagnose in Unified Service Desk
Verwenden Sie die Datei .zip, um einen Datensatz für Anpassungsdateien zu erstellen, und fügen Sie ihn dann an den entsprechenden Konfigurationsdatensatz an, damit die Assembly an die Clientcomputer verteilt werden kann, wenn sie sich mit dem Unified Service Desk-Client bei Dynamics 365 anmelden. Weitere Informationen: Verteilen von benutzerdefinierten gehosteten Steuerelementen mithilfe von Anpassungsdateien