Crear escuchas personalizadas para auditoría, diagnóstico y seguimiento

Una escucha podrá dirigir el resultado del registro a archivos, el registro de eventos u otros orígenes. Hasta la versión anterior de Unified Service Desk, solo podía usar las escuchas estándar para escribir los registros de auditoría, diagnóstico y seguimiento en Unified Service Desk.

Con Unified Service Desk 2.0, puede configurar las escuchas personalizadas para registrar datos de auditoría, diagnóstico, y seguimiento. Especifique una escucha personalizada mediante el nuevo tipo de control hospedado llamado Control hospedados de escucha que contiene una referencia al ensamblados (archivo .dll) que contiene el código personalizado de escucha.

¿Qué implica la creación escuchas personalizadas?

Crear y usar escuchas personalizadas en Unified Service Desk implica el trabajo conjunto de desarrolladores y administradores. La siguiente tabla describe el proceso.

Paso ¿Quién lo hace? Tarea Vea aquí
1 Developer Escribir el código para la escucha personalizada. Definir la escucha personalizada para Unified Service Desk
2 Developer Comprimir el ensamblado en un archivo .zip para crear un archivo de personalización para Unified Service Desk. Preparar la distribución del código de ejemplo
3 Desarrollador/administrador Crear instancias del Control hospedado de escucha para usar el código personalizado de escucha. Crear instancias del Control hospedado de escucha para usar el código personalizado de escucha
4 Administrador Crear instancias del registro de Configuración de auditoría y diagnóstico para configurar la información de registro auditoría, diagnóstico o seguimiento. Configurar auditoría y diagnóstico en Unified Service Desk
5 Administrador Crear Archivos de personalización, y adjuntar el archivo .zip creado por el desarrollador en el paso #2. Distribuir controles hospedaos personalizados con los archivos de personalización
6 Administrador Adjunte el registro Archivos de personalización a la instancia correspondiente de la entidad Configuración. Asociar auditoría y diagnóstico con una configuración

Definir la escucha personalizada para Unified Service Desk

Puede combinar el código para la escucha personalizada para el registro de auditoría, diagnóstico, y seguimiento en un solo ensamblado o en diferentes ensamblados. La clase que contiene el código de escucha debe derivarse de:

Nota

Cree una notas de los nombres de espacio de nombres y clase en el código de escucha. Necesitará estos para crear instancias de Control hospedado de escucha para hacer referencia a su código personalizado.

Escucha personalizada para registros de auditoría

El siguiente código de ejemplo demuestra cómo crear una escucha personalizada que escribe datos de auditoría en el archivo USDAudit.log 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);   
                }  
            }  
        }  
    }  
}  
  

Escucha personalizada para registros de diagnóstico

El siguiente código de ejemplo demuestra cómo crear una escucha personalizada que escribe datos de diagnóstico en el archivo 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);  
        }  
    }  
}  

Escucha personalizada para registros de seguimiento

El siguiente código de ejemplo demuestra cómo crear una escucha personalizada que escribe datos de seguimiento en el archivo USDTraces.log de 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 la distribución del código de ejemplo

Una vez que ha creado código de escucha personalizada en un archivo de ensamblado (.dll), trabaje con su administrador para distribuir el código en los equipos cliente para que puedan consumir las escuchas personalizadas. Para distribuir los archivos personalizados, comprima los archivos junto con un archivo [Content_Types].xml en un archivo .zip y proporcione el archivo .zip al administrador para adjuntarlo a un registro de Customization Files. Consulte Pasos siguientes para el administrador.

El archivo [Content_Types].xml proporciona información de tipo MIME de extensiones de tipos de archivo que se incluyen en el archivo .zip. Normalmente, los tipos de archivo son: .config, .dll, .exe, y .xml. Sin embargo, puede incluir cualquier tipo de archivo que se admite en Windows en el archivo [Content_Types].xml y en el archivo zip.

Este es un ejemplo de archivo [Content_Types].xml con tipos de archivo que suelen usarse para personalizar 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 instancias del Control hospedado de escucha para usar el código personalizado de escucha

El nuevo Control hospedado de escucha en Unified Service Desk permiten hacer referencia y usar el código personalizado de escucha para registrar datos conforme al código. El área Información de ensamblado en la pantalla del nuevo control hospedado le permite especificar los detalles sobre su ensamblado a los que desea que haga referencia el Control hospedado de escucha. Especifique el nombre del ensamblado (.dll) en el campo URI de ensamblado y <AssemblyName>.<ClassName> en el campo Tipo de ensamblado. <ClassName> debe ser la clase que contiene el código.

Por ejemplo, si consideramos el código de ejemplo para escuchas personalizadas anteriormente en este tema y suponemos que todos los códigos de ejemplo se compilan en un único ensamblado denominado SampleCustomUSDListener.dll, debe crear un registro de control hospedado de escucha individual para auditoría, diagnóstico, y seguimiento con los siguientes valores en los campos URI de ensamblado y Tipo de ensamblado.

Auditoría Diagnóstico Seguimiento
- URI de ensamblado: SampleCustomUSDListener
- Tipo de ensamblado: SampleCustomUSDListener.CustomUSDAuditListener
- URI de ensamblado: SampleCustomUSDListener
- Tipo de ensamblado: SampleCustomUSDListener.CustomUSDDiagnosticListener
- URI de ensamblado: SampleCustomUSDListener
- Tipo de ensamblado: SampleCustomUSDListener.CustomUSDTraceListener

Guarde los registros de controles hospedados de escucha.

Pasos siguientes para el administrador

Como administrador, debe hacer ahora las siguientes dos cosas para usar código personalizado de escucha en su organización:

Vea también

Extender Unified Service Desk