Comparteix a través de


Crear oients personalitzats per a auditoria, diagnòstic i seguiments

Un oient us permet orientar la sortida del registre a fitxers, al registre d'incidències o a altres fonts. Fins a la versió anterior de l'Unified Service Desk, només es podien utilitzar els oients estàndard per escriure registres d'auditoria, diagnòstic i seguiment a l'Unified Service Desk.

Amb l'Unified Service Desk 2.0, podeu configurar oients personalitzats per registrar dades d'auditoria, diagnòstic i seguiment. Especifiqueu un oient personalitzat mitjançant el nou tipus de control allotjat anomenat Control allotjat d'oient que conté una referència a l'assemblatge (.dll fitxer) que conté el codi d'escolta personalitzat.

Què implica crear oients personalitzats?

La creació i l'ús d'oients personalitzats a l'Unified Service Desk implica que desenvolupadors i administradors treballin junts. La taula següent descriu el procés.

Pas Qui ho fa? Tasca Vegeu aquí
1 Desenvolupador Escriu codi per a l'oient personalitzat. Definiu l'oient personalitzat per a l'Unified Service Desk
2 Desenvolupador Comprimiu l'assemblatge en un fitxer .zip per crear un fitxer de personalització per a l'Unified Service Desk. Preparar-se per a la distribució del codi d'exemple
3 Desenvolupador/Administrador Creeu instàncies del control allotjat de l'oient per utilitzar el codi de l'oient personalitzat. Crear instàncies de control allotjat d'oient per utilitzar el codi d'oient personalitzat
4 Administrador Creeu instàncies del registre de configuració d'auditoria i diagnòstic per configurar la informació d'auditoria, diagnòstic o registre de seguiment. Configurar l'auditoria i el diagnòstic a l'Unified Service Desk
5 Administrador Creeu fitxers de personalització i adjunteu el fitxer .zip creat pel desenvolupador al pas #2. Distribuir controls allotjats personalitzats mitjançant fitxers de personalització
6 Administrador Adjunteu el registre Fitxers de personalització a la instància adequada de l'entitat Configuració . Associar auditories i diagnòstics amb una configuració

Definiu l'oient personalitzat per a l'Unified Service Desk

Podeu combinar el codi de l'oient personalitzat per a l'auditoria, el diagnòstic i el registre de seguiment en un sol assemblatge o en diferents assemblatges. La classe que conté el codi d'oient s'ha de derivar de:

Nota

Preneu nota dels noms de l'espai de noms i de les classes al codi de l'oient. Els necessitareu per crear instàncies del control allotjat de l'oient per fer referència al vostre codi personalitzat.

Escolta personalitzada per als registres d'auditoria

El codi d'exemple següent mostra com crear un oient personalitzat que escriu dades d'auditoria a USDAudit.log fitxer de la carpeta 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);   
                }  
            }  
        }  
    }  
}  
  

Escolta personalitzada per als registres de diagnòstic

El codi d'exemple següent demostra com crear un oient personalitzat que escriu dades de diagnòstic al fitxer USDDiagnostics.log de la carpeta 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);  
        }  
    }  
}  

Escolta personalitzada per als registres de traça

El codi d'exemple següent mostra com crear un escolta personalitzat que escriu dades de traça al fitxer USDTraces.log a la carpeta 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);  
        }  
    }  
}  

Preparar-se per a la distribució del codi d'exemple

Després d'haver creat el codi d'escolta personalitzat en un fitxer d'assemblatge (.dll), treballeu amb l'administrador per distribuir el codi als ordinadors client perquè puguin consumir els vostres oients personalitzats. Per distribuir els fitxers personalitzats, comprimiu els fitxers juntament amb un [Content_Types].xml fitxer en un fitxer .zip i proporcioneu el fitxer .zip a l'administrador per adjuntar-lo a un Customization Files registre. Vegeu Passos següents per a l'administrador.

El fitxer.xml [Content_Types] proporciona informació de tipus MIME de les extensions de tipus de fitxer que s'inclouen al fitxer .zip. Normalment, els tipus de fitxer són: .config, .dll, .exei .xml. Tanmateix, podeu incloure qualsevol tipus de fitxer compatible amb Windows al fitxer.xml [Content_Types] i al fitxer zip.

A continuació es mostra un fitxer.xml d'exemple [Content_Types] amb els tipus de fitxer enumerats que s'utilitzen normalment per personalitzar l'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>  

Crear instàncies de control allotjat d'oient per utilitzar el codi d'oient personalitzat

El nou control allotjat de l'oient a l'Unified Service Desk us permet fer referència i utilitzar el codi de l'oient personalitzat per registrar dades segons el vostre codi. L'àrea Informació de l'assemblatge de la nova pantalla de control allotjat us permet especificar els detalls sobre l'assemblatge als quals voleu que el control allotjat de l'oient faci referència. Especifiqueu el nom de l'assemblatge (.dll) al camp URI de l'assemblatge i <AssemblyName>.<ClassName> al camp Tipus d'assemblatge . El< ClassName> ha de ser la classe que conté el codi.

Per exemple, si considerem el codi d'exemple per als oients personalitzats anteriorment en aquest tema i suposem que tots els codis d'exemple es compilen en un únic assemblatge anomenat SampleCustomUSDListener.dll, heu de crear un registre de control allotjat per a l'auditoria, el diagnòstic i el seguiment amb els valors següents als camps URI de l'assemblatge i Tipus d'assemblatge .

Auditoria Diagnòstic Traça
- URI de l'assemblatge: SampleCustomUSDListener
- Tipus de muntatge: SampleCustomUSDListener.CustomUSDAuditListener
- URI de l'assemblatge: SampleCustomUSDListener
- Tipus de muntatge: SampleCustomUSDListener.CustomUSDDiagnosticListener
- URI de l'assemblatge: SampleCustomUSDListener
- Tipus de muntatge: SampleCustomUSDListener.CustomUSDTraceListener

Deseu els registres de control allotjats de l'oient.

Passos següents per a l'administrador

Com a administrador, ara hauríeu de fer les dues coses següents per utilitzar el codi d'escolta personalitzat a la vostra organització:

Vegeu també

Ampliació de l'Unified Service Desk