Créer des écouteurs personnalisés pour l’audit, le diagnostic et les traces

Un écouteur vous sert à cibler le résultat des journaux dans les fichiers, le journal des événements ou d’autres sources. Jusqu’à la version précédente de Unified Service Desk, vous pouviez utiliser uniquement des écouteurs standard pour entrer des journaux d’audit, de diagnostic, et de suivi dans Unified Service Desk.

Avec Unified Service Desk 2.0, vous pouvez configurer des écouteurs personnalisés pour enregistrer des données d’audit, de diagnostic et de suivi. Spécifiez un écouteur personnalisé à l’aide du nouveau type de contrôle hébergé appelé Contrôle hébergé de l’écouteur contenant une référence à cet assembly (fichier .dll) contenant votre code d’écouteur personnalisé.

Qu’implique la création d’écouteurs personnalisés ?

La création et l’utilisation d’écouteurs personnalisés dans Unified Service Desk implique la participation des développeurs et des administrateurs. Le tableau suivant décrit le processus.

Étape Qui le fait ? Tâche Voir ici
1 Developer Écrire le code de votre écouteur personnalisé. Définir votre écouteur personnalisé pour Unified Service Desk
2 Developer Compresser l’assembly dans un fichier .zip pour créer un fichier de personnalisation pour Unified Service Desk. Préparer la distribution de votre exemple de code
3 Développeur/administrateur Créer des instances du contrôle hébergé de l’écouteur pour utiliser le code d’écouteur personnalisé. Créer des instances du contrôle hébergé de l’écouteur pour utiliser votre code d’écouteur personnalisé
4 Administrateur Créer des instances de l’enregistrement Paramètres d’audit et de diagnostics pour configurer vos informations d’enregistrement d’audit, de diagnostic de suivi. Configurer l’audit et le diagnostic dans Unified Service Desk
5 Administrateur Créer des Fichiers de personnalisation et joindre le fichier .zip créé par le développeur à l’étape n°2. Distribuer des contrôles hébergés personnalisés à l’aide des fichiers de personnalisation
6 Administrateur Joindre l’enregistrement Fichiers de personnalisation à l’instance appropriée de l’entité Configuration. Associer l’audit et le diagnostic avec une configuration

Définir votre écouteur personnalisé pour Unified Service Desk

Vous pouvez combiner le code de votre écouteur personnalisé pour l’enregistrement d’audit, de diagnostic et de suivi dans un assembly unique ou différents assemblys. La classe contenant votre code d’écouteur doit être dérivée de :

Note

Prenez note de l’espace de noms et des noms de classe dans votre code d’écouteur. Vous en aurez besoin pour créer des instances de contrôle hébergé de l’écouteur pour faire référence à votre code personnalisé.

Écouteur personnalisé pour les journaux d’audit

L’exemple de code suivant illustre comment créer un écouteur personnalisé qui écrit des données d’audit dans le fichier USDAudit.log dans le dossier 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);   
                }  
            }  
        }  
    }  
}  
  

Écouteur personnalisé pour les journaux de diagnostic

L’exemple de code suivant illustre comment créer un écouteur personnalisé qui écrit des données de diagnostic dans le fichier USDDiagnostics.log dans le dossier 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);  
        }  
    }  
}  

Écouteur personnalisé pour les journaux de suivi

L’exemple de code suivant illustre comment créer un écouteur personnalisé qui écrit des données de suivi dans le fichier USDTraces.log dans le dossier 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);  
        }  
    }  
}  

Préparer la distribution de votre exemple de code

Après avoir élaboré votre code d’écouteur personnalisé dans un fichier d’assembly (.dll), demandez à votre administrateur de distribuer votre code aux ordinateurs clients afin qu’ils puissent consommer vos écouteurs personnalisés. Pour distribuer vos fichiers personnalisés, compressez les fichiers avec un fichier [Content_Types].xml dans un fichier .zip et fournissez le fichier .zip à votre administrateur pour qu’il le joigne à un enregistrement Customization Files. Voir Étapes suivantes pour l’administrateur.

Le fichier [Content_Types].xml fournit des informations sur le type MIME aux extensions de fichier inclus dans le fichier .zip. Généralement, les types de fichiers sont : .config, .dll, .exe et .xml. Toutefois, vous pouvez inclure tout type de fichier pris en charge par Windows dans le fichier [Content_Types].xml dans le fichier zip.

Voici un fichier exemple de fichier [Content_Types].xml avec des types de fichiers répertoriés qui sont généralement utilisés pour personnaliser 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>  

Créer des instances du contrôle hébergé de l’écouteur pour utiliser votre code d’écouteur personnalisé

Le nouveau contrôle hébergé de l’écouteur dans Unified Service Desk vous permet de référencer et d’utiliser votre code d’écouteur personnalisé pour stocker des données selon votre code. La zone Informations sur l’assembly dans le nouvel écran de contrôle hébergé vous permet de spécifier les détails de votre assembly qui doivent être mentionnés par le contrôle hébergé de l’écouteur. Spécifiez le nom de votre assembly (.dll) dans le champ URI d’assembly et <NomAssembly>.<NomClasse> dans le champ Type d’assembly. Le <NomClasse> doit être la classe contenant votre code.

Par exemple, si nous prenons l’exemple du code pour les écouteurs personnalisés plus haut dans cette rubrique, et que nous supposons que tous les exemples de code sont compilés dans un assembly unique appelé SampleCustomUSDListener.dll, vous devez créer un enregistrement de contrôle hébergé de l’écouteur pour chaque audit, diagnostic et suivi avec les valeurs suivantes dans les champs URI d’assembly et Type d’assembly.

Audit Diagnostic Suivi
- URI d’assembly : SampleCustomUSDListener
- Type d’assembly: SampleCustomUSDListener.CustomUSDAuditListener
- URI d’assembly : SampleCustomUSDListener
- Type d’assembly : SampleCustomUSDListener.CustomUSDDiagnosticListener
- URI d’assembly : SampleCustomUSDListener
- Type d’assembly : SampleCustomUSDListener.CustomUSDTraceListener

Enregistrez les enregistrements de contrôle hébergés de l’écouteur.

Étapes suivantes pour l’administrateur

En tant qu’administrateur, vous devez maintenant effectuer deux tâches pour utiliser le code d’écouteur personnalisé dans votre organisation :

Voir aussi

Étendre Unified Service Desk