Aangepaste listeners voor controle, diagnostiek en traceringen maken

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Met een listener kunt u de logboekuitvoer naar bestanden, het gebeurtenislogboek of andere bronnen te sturen. In de vorige versie van Unified Service Desk kon u alleen de standaardlisteners gebruiken om controles, diagnoses en traceerlogboeken in Unified Service Desk te schrijven.

Met Unified Service Desk 2.0 kunt u aangepaste listeners configureren om controles, diagnoses en traceringgegevens in logboeken vast te leggen. Geef een aangepaste listener op met behulp van het nieuwe type gehost besturingselement met de naam Gehost besturingselement voor listener dat een verwijzing bevat naar de assembly (.dll-bestand) met daarin de code van uw aangepaste listener.

In dit onderwerp

Wat komt er kijken bij het maken van aangepaste listeners?

Uw aangepaste listener definiëren voor Unified Service Desk

Het distribueren van uw voorbeeldcode voorbereiden

Maak exemplaren van het gehoste besturingselement listener om uw code van de aangepaste listener te gebruiken.

Volgende stappen voor beheerder

Wat komt er kijken bij het maken van aangepaste listeners?

Om aangepaste listeners in Unified Service Desk te maken moeten ontwikkelaars en beheerders samenwerken. In de volgende tabel vindt u een overzicht van het proces.

Stap

Wie doet het?

Opdracht

Zie hier

1

Ontwikkelaar

Schrijf code voor uw aangepaste listener.

Uw aangepaste listener definiëren voor Unified Service Desk

2

Ontwikkelaar

Comprimeer assembly in een .zip-bestand om een aanpassingsbestand voor Unified Service Desk te maken.

Het distribueren van uw voorbeeldcode voorbereiden

3

Ontwikkelaar/Beheerder

Maak exemplaren van het Gehoste besturingselement voor listener om de code van de aangepaste listener te gebruiken.

Maak exemplaren van het gehoste besturingselement listener om uw code van de aangepaste listener te gebruiken.

4

Beheerder

Maak exemplaren van de Controle- en diagnose-instellingen-record om uw controle-, diagnose- of traceerlogboekinformatie te configureren.

TechNet: Controle en diagnostiek configureren in Unified Service Desk

5

Beheerder

Maak Aangepaste bestanden en voeg het .zip-bestand toe dat door de ontwikkelaar in stap #2 is gemaakt.

TechNet: Aangepaste gehoste besturingselementen distribueren via aanpassingsbestanden

6

Beheerder

Voeg de record Aangepaste bestanden aan het juiste exemplaar van de entiteit Configuratie toe.

TechNet: Controleren en diagnostiek aan een configuratie koppelen

Uw aangepaste listener definiëren voor Unified Service Desk

U kunt de code van uw aangepaste listener voor controleren, diagnoses en traceringslogboekregistratie combineren tot één assembly of tot verschillende assembly´s. De klasse die uw listenercode bevat moet worden afgeleid uit:

Notitie

Maak een notitie van de naamruimte en de klassenamen in uw listenercode. U hebt deze nodig om exemplaren van het gehost besturingselement listener te maken om naar uw aangepaste code te verwijzen.

Aangepaste listener voor controlelogboeken

In de volgende voorbeeldcode ziet u hoe u een aangepaste listener kunt maken die controlegegevens naar het bestand USDAudit.log in de map C:\USDLogs schrijft.

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); 
                }
            }
        }
    }
}

Aangepaste listener voor diagnoselogboeken

In de volgende voorbeeldcode ziet u hoe u een aangepaste listener kunt maken die diagnosegegevens naar het bestand USDDiagnostics.log in de map C:\USDLogs schrijft.

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);
        }
    }
}

Aangepaste listener voor traceringslogboeken

In de volgende voorbeeldcode ziet u hoe u een aangepaste listener kunt maken die traceringsgegevens naar het bestand USDTraces.log in de map C:\USDLogs schrijft.

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);
        }
    }
}

Het distribueren van uw voorbeeldcode voorbereiden

Nadat u de code van de aangepaste listener in een assemblybestand (.dll) hebt gebouwd, moet u samenwerken met uw beheerder om de code te distribueren naar de clientcomputers zodat deze uw aangepaste listeners kunnen gebruiken. Om uw aangepaste bestanden te kunnen distribueren, comprimeert u de bestanden samen met een [Content_Types].xml-bestand in een .zip-bestand en geeft u het .zip-bestand aan uw beheerder die het aan een Customization Files-record koppelt. Zie Volgende stappen voor beheerder.

Het bestand [Content_Types].xml levert informatie over het MIME-type van de bestandstype-extensies die in het .zip-bestand zijn opgenomen. Doorgaans zijn de bestandstypen: .config, .dll, .exe en .xml. U kunt echter een willekeurig bestandstype opnemen dat door Windows wordt ondersteunt in het bestand [Content_Types].xml en in het bestand zip.

Hier volgt een [Content_Types].xml-voorbeeldbestand met weergegeven bestandstypen die gewoonlijk worden gebruikt voor het aanpassen van Unified Service Desk:

<?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>

Maak exemplaren van het gehoste besturingselement listener om uw code van de aangepaste listener te gebruiken.

Met het nieuwe gehoste besturingselement listener in Unified Service Desk kunt u verwijzen naar uw code voor de aangepaste listener en deze gebruiken voor het vastleggen van gegevens in logboeken overeenkomstig uw code. In het gebied Assemby-informatie in het scherm van het nieuwe gehoste besturingselement, kunt u gegevens over de assembly opgeven waar u het gehoste besturingselement naar wilt laten verwijzen. Geef uw assemblynaam (.dll) op in het veld en Assembly-URI*<Assemblynaam>.<Klassenaam>* in het veld Assemblytype. De <Klassenaam> moet de klasse zijn die uw code bevat.

Een gehost besturingselement voor listener maken

Bijvoorbeeld, als we de voorbeeldcode voor aangepaste listeners die eerder in dit onderwerp aan de orde zijn geweest als uitgangspunt nemen, en ervan uitgaan dat alle voorbeeldcodes in één assembly met de naam SampleCustomUSDListener.dll zijn gecompileerd, moet u een record gehost besturingselementrecord listener voor zowel controleren, diagnose en tracering maken, met behulp van de volgende waarden in de velden Assembly-URI en Assemblytype.

Controle

Diagnose

Tracering

  • Assemblage-URI: SampleCustomUSDListener

  • Assemblagetype: SampleCustomUSDListener.CustomUSDAuditListener

  • Assemblage-URI: SampleCustomUSDListener

  • Assemblagetype: SampleCustomUSDListener.CustomUSDDiagnosticListener

  • Assemblage-URI: SampleCustomUSDListener

  • Assemblagetype: SampleCustomUSDListener.CustomUSDTraceListener

Sla de records gehost besturingselement voor listener op.

Volgende stappen voor beheerder

Als beheerder moet u nu de volgende twee dingen doen om de code van de aangepaste listener in uw organisatie te gebruiken:

Zie ook

Volledige servicedesk uitbreiden

Unified Service Desk 2.0

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht