Condividi tramite


Creare listener personalizzati per il controllo, la diagnostica e l'analisi

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Un listener ti consente di indirizzare l'output del registro ai file, al registro eventi o ad altre origini. Nella versione precedente di Unified Service Desk, potevi utilizzare solo i listener standard per scrivere i registri di controllo, diagnostica e traccia in Unified Service Desk.

Con Unified Service Desk 2.0, puoi configurare i listener personalizzati per registrare i dati di controllo, diagnostica e traccia. Specifica un listener personalizzato utilizzando il nuovo tipo di controllo ospitato denominato Controllo ospitato listener contenente un riferimento all'assembly (file .dll) contenente il codice del listener personalizzato.

In questo argomento

La creazione dei listener personalizzati richiede la partecipazione di chi?

Definire il listener personalizzato per Unified Service Desk

Prepararsi alla distribuzione del codice di esempio

Crea le istanze del Controllo ospitato listener per utilizzare il codice del listener personalizzato.

Passaggi successivi per l'amministratore

La creazione dei listener personalizzati richiede la partecipazione di chi?

La creazione e l'utilizzo dei listener personalizzati Unified Service Desk richiede la partecipazione degli sviluppatori e degli amministratori che lavorano insieme. Nella tabella seguente viene illustrato il processo.

Passaggio

Da chi viene eseguito?

Attività

Vedi qui

1

Sviluppatore

Crea il codice per il listener personalizzato.

Definire il listener personalizzato per Unified Service Desk

2

Sviluppatore

Comprime l'assembly in un file .zip per creare un file di personalizzazione per Unified Service Desk.

Prepararsi alla distribuzione del codice di esempio

3

Sviluppatore/Amministratore

Crea le istanze del Controllo ospitato listener per utilizzare il codice del listener personalizzato.

Crea le istanze del Controllo ospitato listener per utilizzare il codice del listener personalizzato.

4

Amministratore

Creare le istanze del record Impostazioni controllo e diagnostica per configurare le informazioni del registro di controllo, diagnostica e traccia.

Technet: Configurare il controllo e la diagnostica in Unified Service Desk

5

Amministratore

Crea i file di personalizzazione e allega il file .zip creato dallo sviluppatore nel passaggio N. 2.

TechNet: Technet: Distribuire controlli ospitati personalizzati utilizzando file di personalizzazione

6

Amministratore

Allegare il record File di personalizzazione all'istanza appropriata dell'entità Configurazione.

Technet: Associare il controllo e la diagnostica a una configurazione

Definire il listener personalizzato per Unified Service Desk

Puoi combinare il codice del listener personalizzato per il controllo, la diagnostica e la registrazione della traccia in un unico assembly o in assembly diversi. La classe contenente il codice del listener deve essere derivata da:

Nota

Prendi nota dello spazio dei nomi e dei nomi delle classi nel codice del listener. Dovrai fare in modo che creino istanze del controllo ospitato listener per fare riferimento al codice personalizzato.

Listener personalizzato per i registri di controllo

Nel codice di esempio seguente viene illustrato come creare un listener personalizzato che scrive i dati di controllo nel file USDAudit.log della cartella C:\USDLogs.

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

Listener personalizzato per i registri di diagnostica

Nel codice di esempio seguente viene illustrato come creare un listener personalizzato che scrive i dati di diagnostica nel file USDDiagnostics.log della cartella C:\USDLogs.

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

Listener personalizzato per i registri di traccia

Nel codice di esempio seguente viene illustrato come creare un listener personalizzato che scrive i dati di traccia nel file USDTraces.log della cartella C:\USDLogs.

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

Prepararsi alla distribuzione del codice di esempio

Dopo aver compilato il codice del listener personalizzato in un file (.dll) dell'assembly, richiedi all'amministratore di distribuire il codice ai computer client in modo che possano utilizzare i listener personalizzati. Per distribuire i file personalizzati, comprimere i file insieme a un file [Content_Types].xml in un file .zip e fornire il file .zip all'amministratore perché venga allegato a un record Customization Files. Vedere Passaggi successivi per l'amministratore.

Il file [Content_Types].xml contiene informazioni sul tipo MIME delle estensioni del tipo di file incluse nel file .zip. In genere, i tipi di file sono: .config.dll, .exe e .xml. Tuttavia, puoi includere qualsiasi tipo di file supportato in Windows nel file [Content_Types].xml e nel file zip.

Di seguito è riportato un file [Content_Types].xml di esempio con i tipi di file elencati utilizzati in genere per la personalizzazione di 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>

Crea le istanze del Controllo ospitato listener per utilizzare il codice del listener personalizzato.

Il nuovo controllo ospitato listener di Unified Service Desk ti consente di fare riferimento e di utilizzare il codice del listener personalizzato per la registrazione dei dati secondo il codice. L'area Informazioni sull'assembly nella nuova schermata del controllo ospitato consente di specificare i dettagli dell'assembly a cui desideri che faccia riferimento il controllo ospitato listener. Specifica il nome dell'assembly (.dll) nel campo URI assembly e <AssemblyName>.<ClassName> nel campo Tipo di assembly.<ClassName> deve essere la classe contenente il codice.

Creare un controllo ospitato listener

Ad esempio, se consideri il codice di esempio per i listener personalizzati in precedenza in questo argomento e presupponi che tutti i codici di esempio verranno creati in un unico assembly denominato SampleCustomUSDListener.dll, devi creare un record controllo ospitato listener per il controllo, la diagnostica e l'analisi con i valori seguenti nei campi URI assembly e Tipo di assembly.

Controllo

Diagnostica

Traccia

  • URI assembly: SampleCustomUSDListener

  • Tipo di assembly: SampleCustomUSDListener.CustomUSDAuditListener

  • URI assembly: SampleCustomUSDListener

  • Tipo di assembly: SampleCustomUSDListener.CustomUSDDiagnosticListener

  • URI assembly: SampleCustomUSDListener

  • Tipo di assembly: SampleCustomUSDListener.CustomUSDTraceListener

Salvare i record controllo ospitato listener.

Passaggi successivi per l'amministratore

L'amministratore deve ora eseguire le seguenti due operazioni per utilizzare il codice del listener personalizzato nell'organizzazione:

Vedere anche

Estendere Unified Service Desk

Unified Service Desk 2.0

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright