Freigeben über


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:

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.

Erstellen eines gehosteten Listener-Steuerelements

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

  • Assembly-URI: SampleCustomUSDListener

  • Assemblytyp: SampleCustomUSDListener.CustomUSDAuditListener

  • Assembly-URI: SampleCustomUSDListener

  • Assemblytyp: SampleCustomUSDListener.CustomUSDDiagnosticListener

  • Assembly-URI: SampleCustomUSDListener

  • Assemblytyp: SampleCustomUSDListener.CustomUSDTraceListener

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:

Siehe auch

Unified Service Desk erweitern

Unified Service Desk 2.0

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright