Compartilhar via


Criar ouvintes personalizados para auditorias, diagnósticos e rastreamentos

 

Publicado: novembro de 2016

Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Um ouvinte permite que você direcione a saída do log para os arquivos, o log de eventos ou outras fontes. Até a versão anterior do Unified Service Desk, só era possível usar os ouvintes padrão para gravar a auditoria, o diagnóstico e fazer o rastreamento de logs no Unified Service Desk.

Com o Unified Service Desk 2.0, você pode configurar ouvintes personalizados para registrar a auditoria, o diagnóstico e os dados de rastreamento. Especifique um ouvinte personalizado usando o novo tipo de controle hospedado chamado Controle Hospedado de Ouvinte que contém uma referência ao assembly (arquivo .dll) que tem seu código personalizado do ouvinte.

Neste tópico

O que envolve a criação de ouvintes personalizados?

Definir seu ouvinte personalizado para o Unified Service Desk

Preparar para a distribuição do seu código de exemplo

Criar instâncias do Controle Hospedado do Ouvinte para usar seu código personalizado do ouvinte

Próximas etapas para o administrador

O que envolve a criação de ouvintes personalizados?

A criação e o uso de ouvintes personalizados no Unified Service Desk envolve o trabalho em conjunto dos desenvolvedores e administradores. A tabela a seguir descreve o processo.

Etapa

Quem faz?

Tarefa

Veja aqui

1

Desenvolvedor

Escreve código para o ouvinte personalizado.

Definir seu ouvinte personalizado para o Unified Service Desk

2

Desenvolvedor

Compacta o assembly em um arquivo .zip para criar um arquivo de personalização para o Unified Service Desk.

Preparar para a distribuição do seu código de exemplo

3

Desenvolvedor/Administrador

Cria instâncias do Controle Hospedado de Ouvinte para usar o código personalizado do ouvinte.

Criar instâncias do Controle Hospedado do Ouvinte para usar seu código personalizado do ouvinte

4

Administrador

Cria instâncias de registro das Configurações de Auditoria e Diagnóstico para configurar a auditoria, o diagnóstico ou informações de registro de rastreamento.

TechNet: Configurar auditoria e diagnósticos no Unified Service Desk

5

Administrador

Cria Arquivos de Personalização e anexa o arquivo .zip criado pelo desenvolvedor na etapa nº 2.

TechNet: Distribuir controles personalizados usando Arquivos de Personalização

6

Administrador

Anexa o registro Arquivos de Personalização adequado à instância da entidade Configuração.

TechNet: Associar auditoria e diagnóstico a uma configuração

Definir seu ouvinte personalizado para o Unified Service Desk

É possível combinar o código do seu ouvinte personalizado para a auditoria, diagnóstico e registro de rastreamento em um mesmo assembly ou em assemblies diferentes. A classe que contém o código do ouvinte deve ser derivada de:

Dica

Anote os nomes do namespace e das classes no código do ouvinte. Eles serão necessários para criar instâncias do Controle Hospedado de Ouvinte para se referir ao seu código personalizado.

Ouvinte personalizado para logs de auditoria

O código de exemplo a seguir demonstra como criar um ouvinte personalizado que grava dados de auditoria no arquivo USDAudit.log na pasta 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); 
                }
            }
        }
    }
}

Ouvinte personalizado para logs de diagnóstico

O código de exemplo a seguir demonstra como criar um ouvinte personalizado que grava dados de diagnóstico no arquivo USDDiagnostics.log na pasta 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);
        }
    }
}

Ouvinte personalizado para logs de rastreamento

O código de exemplo a seguir demonstra como criar um ouvinte personalizado que grava dados de rastreamento no arquivo USDTraces.log na pasta 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 para a distribuição do seu código de exemplo

Depois de compilar seu código de ouvinte personalizado em um arquivo (.dll) do assembly, trabalhe com o administrador para distribuir o código para os computadores clientes de modo que eles possam consumir seus ouvintes personalizados. Para distribuir os arquivos personalizados, compacte-os juntamente com um arquivo [Content_Types].xml em um arquivo .zip e forneça o arquivo .zip ao administrador para que seja anexado a um registro de Customization Files. Consulte Próximas etapas para o administrador.

O arquivo [Content_Types].xml fornece informações do tipo MIME sobre as extensões de tipo de arquivo que estão incluídas no arquivo .zip. Geralmente, os tipos de arquivos são: .config, .dll, .exe e .xml. Entretanto, você pode incluir qualquer tipo de arquivo compatível com o Windows no arquivo [Content_Types].xml e no arquivo zip.

Veja um exemplo de arquivo [Content_Types].xml com os tipos de arquivo listados que geralmente são usados na personalização do 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>

Criar instâncias do Controle Hospedado do Ouvinte para usar seu código personalizado do ouvinte

O novo o Controle Hospedado de Ouvinte no Unified Service Desk permite referenciar e usar o código personalizado do ouvinte para registrar dados conforme seu código. A área Informações do Assembly, na nova tela do controle de hospedado, permite especificar os detalhes sobre seu assembly ao qual você deseja ser referenciado pelo Controle Hospedado de Ouvinte. Especifique o nome do assembly (.dll) no campo URI do Assembly e o <AssemblyName>.<ClassName> no campo Tipo de Assembly. O <ClassName> deve ser a classe que contém seu código.

Criar um controle hospedado de ouvinte

Por exemplo, se consideramos os códigos de exemplo para ouvintes personalizados mencionados anteriormente neste tópico e supondo que todos os códigos de exemplo sejam compilados em um mesmo assembly chamado SampleCustomUSDListener.dll, será necessário criar um registro de controle hospedado de ouvinte para cada um para a auditoria, o diagnóstico e para o rastreamento com os seguintes valores nos campos URI do Assembly e Tipo de Assembly:

Auditar

Diagnóstico

Rastreamento

  • URI do Assembly: SampleCustomUSDListener

  • Tipo de Assembly: SampleCustomUSDListener.CustomUSDAuditListener

  • URI do Assembly: SampleCustomUSDListener

  • Tipo de Assembly: SampleCustomUSDListener.CustomUSDDiagnosticListener

  • URI do Assembly: SampleCustomUSDListener

  • Tipo de Assembly: SampleCustomUSDListener.CustomUSDTraceListener

Salve os registros do controle hospedado de ouvinte.

Próximas etapas para o administrador

Como administrador, agora você deve fazer essas duas coisas para usar código personalizado do ouvinte em sua organização:

Confira Também

Estender o Unified Service Desk

Unified Service Desk 2.0

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais