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:
IAuditService para logs de auditoria
ILogging para logs de diagnóstico
TraceListener para logs de rastreamento
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.
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 |
---|---|---|
|
|
|
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:
Criar registros Configurações de Auditoria e Diagnóstico e anexar o registro do controle hospedado de ouvinte adequado a eles.Para obter mais informações:TechNet: Configurar auditoria e diagnósticos no Unified Service Desk
Use o arquivo .zip para criar um registro de Arquivos de Personalização e anexe-o ao registro de Configuração adequado para que o assembly possa ser distribuído aos computadores clientes quando eles entram no servidor do Dynamics 365 usando o Unified Service Desk cliente.Para obter mais informações:TechNet: Distribuir controles personalizados usando Arquivos de Personalização
Confira Também
Estender o Unified Service Desk
Unified Service Desk 2.0
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais