Freigeben über


Erstellen von benutzerdefinierten Listenern für Überwachen, Diagnose und Ablaufverfolgungen

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 angepasste Listener für die Protokollierung von Auditing-, Diagnose- und Tracing-Daten konfigurieren. 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.

Was umfasst die Erstellung benutzerdefinierter Listenern?

Das Erstellen und Verwenden von angepassten Listenern in Unified Service Desk erfordert die Zusammenarbeit von Entwicklern und Administratoren. In der folgenden Tabelle wird der Prozess dargelegt.

Schritt Wer führt das aus? Aufgabe Hier finden Sie die Information
1 Developer Schreiben von Code für Ihre benutzerdefinierten Listener. Definieren des benutzerdefinierten Listeners für Unified Service Desk
2 Developer 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. 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. Bereitstellung benutzerdefinierter gehosteter Steuerelemente unter Verwendung von Anpassungsdateien
6 Administrator Fügen Sie den Datensatz Anpassungs-Dateien zur entsprechenden Instanz der Entität Konfiguration hinzu. 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:

Notiz

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 Nachverfolgungsdaten 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 stellt eine MIME Typinformation der Dateityperweiterungen bereit, die in der .zip Datei enthalten sind. 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 [Content_Types].xml Datei und in der zip Datei unterstützt wird.

Hier ist eine Beispieldatei [Content_Types].xml mit einer Liste von Dateitypen, die typischerweise 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 angepassten Listener-Code verweisen und diesen für die Protokollierung von Daten gemäß Ihrem Code 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 im Feld Assembly URI den Namen Ihrer Montage (.dll) an und <AssemblyName>.<ClassName> im Feld Assembly Type. 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
- Assembly URI: SampleCustomUSDListener
- Montage Typ: SampleCustomUSDListener.CustomUSDAuditListener
- Assembly URI: SampleCustomUSDListener
- Montage Typ: SampleCustomUSDListener.CustomUSDDiagnosticListener
- Assembly URI: SampleCustomUSDListener
- Assembly Type: 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