Procédure pas à pas : exploration des journaux des événements, des sources d'événements et des entrées

Mise à jour : novembre 2007

Cette procédure pas à pas aborde les principaux domaines de fonctionnalités de l'enregistrement des événements dans votre application Visual Studio. Au cours de cette procédure pas à pas, vous allez apprendre à effectuer les tâches suivantes :

  • créer un composant EventLog ;

  • écrire du code pour créer et supprimer des journaux des événements personnalisés ;

  • écrire des entrées de divers types dans le journal personnalisé ;

  • lire des entrées dans le journal personnalisé ;

  • vérifier l'existence des journaux et des sources d'événements ;

  • effacer des entrées de journal ;

  • utiliser l'Explorateur de serveurs pour vérifier les résultats de vos actions avec les journaux des événements.

Remarque :

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Création de l'interface utilisateur

Dans cette procédure pas à pas, vous créez une application Windows et utilisez sur celle-ci une série de contrôles afin de lancer plusieurs actions d'enregistrement des événements.

Pour créer le formulaire et les contrôles destinés à votre application

  1. À partir de la boîte de dialogue Nouveau projet, créez une Application WindowsVisual Basic ou Visual C# et nommez-la EventLogApp1.

  2. Ajoutez huit boutons au formulaire et définissez les propriétés suivantes pour ceux-ci :

    Contrôle

    Propriété Text

    Propriété Name

    Button1

    Créer un journal personnalisé

    CreateLog

    Button2

    Supprimer le journal

    DeleteLog

    Button3

    Écrire une entrée

    WriteEntry

    Button4

    Effacer le journal

    ClearLog

    Button5

    Vérifier l'existence du journal

    VerifyLog

    Button6

    Vérifier l'existence de la source

    VerifySource

    Button7

    Supprimer la source de l'événement

    RemoveSource

    Button8

    Lire l'entrée

    ReadEntry

  3. Ensuite, effectuez les opérations suivantes pour chacun des boutons :

    1. Dans le concepteur, double-cliquez sur le bouton pour créer un gestionnaire d'événements par défaut pour ce bouton. L'éditeur de code et un stub pour l'événement Click du bouton apparaît.

    2. Revenez en mode Design et double-cliquez sur le bouton suivant.

    3. Répétez la procédure pour créer un stub de gestionnaire d'événements par défaut pour chaque bouton.

  4. Sous l'onglet Composants de la boîte à outils, faites glisser un composant EventLog dans le formulaire.

    Une instance du composant EventLog apparaît dans la barre d'état des composants au bas du formulaire.

Création et suppression d'un journal personnalisé

Dans cette procédure, vous utilisez la méthode SourceExists pour vérifier que la source utilisée n'existe pas déjà et ensuite, vous appelez la méthode CreateEventSource avec le nom d'un journal qui n'existe pas. Puisque ce journal n'existe pas, le système crée un journal personnalisé pour vous lors de l'exécution de ce code.

Pour créer le journal personnalisé

  1. Dans l'éditeur de code, recherchez la procédure CreateLog_Click.

  2. Tapez le code ci-dessous. Le journal des événements et la source sont créés en tant que paire ; par conséquent, la source ne peut pas exister si le journal des événements n'a pas encore été créé. Une fois le journal des événements créé, le composant EventLog est configuré pour pouvoir y accéder.

    ' Source cannot already exist before creating the log.
    If EventLog.SourceExists("Source1") Then
       EventLog.DeleteEventSource("Source1")
    End If
    
    ' Logs and Sources are created as a pair.
    EventLog.CreateEventSource("Source1", "NewLog1")
    ' Associate the EventLog component with the new log.
    EventLog1.Log = "NewLog1"
    EventLog1.Source = "Source1"
    
    // Source cannot already exist before creating the log.
    if (System.Diagnostics.EventLog.SourceExists("Source1"))
    {
       System.Diagnostics.EventLog.DeleteEventSource("Source1");
    }
    
    // Logs and Sources are created as a pair.
    System.Diagnostics.EventLog.CreateEventSource("Source1", "NewLog1");
    // Associate the EventLog component with the new log.
    eventLog1.Log = "NewLog1";
    eventLog1.Source = "Source1";
    
    Note de sécurité :

    Lorsque vous créez un journal des événements, vous devez déterminer la marche à suivre si cette ressource existe déjà. Il est possible qu'un autre processus, peut-être nuisible, ait déjà créé le journal des événements et puisse y accéder. Lorsque vous placez des données dans le journal des événements, elles sont disponibles pour les autres processus.

Pour supprimer un journal personnalisé

  1. Dans l'éditeur de code, recherchez la procédure DeleteLog_Click.

  2. Tapez le code suivant :

    If EventLog.Exists("NewLog1") Then
       EventLog.Delete("NewLog1")
    End If
    
    if (System.Diagnostics.EventLog.Exists("NewLog1"))
    {
       System.Diagnostics.EventLog.Delete("NewLog1");
    }
    

Écriture d'entrées dans le journal

Dans cette procédure, vous utilisez l'instance du composant EventLog que vous avez créée pour écrire des entrées dans le journal. Pour cela, vous configurez d'abord le composant pour l'utilisation de la chaîne source que vous venez de créer. Vous spécifiez ensuite deux entrées à écrire : un événement d'information et un événement d'erreur.

Pour écrire des entrées dans le journal

  1. Dans l'éditeur de code, recherchez la procédure WriteEntry_Click.

  2. Tapez le code ci-dessous. Ce code utilise la méthode surchargée WriteEntry pour écrire dans le journal des événements. Le second formulaire qui s'affiche vous permet de spécifier le type de message. Si vous affichez les entrées dans la section « Test du code » plus loin dans cette rubrique, à l'aide de l'Explorateur de serveurs, les différents types d'entrées sont indiqués par des icônes distinctes.

    EventLog1.WriteEntry("This is an informational message")
    EventLog1.WriteEntry("This is an error message", _
       Diagnostics.EventLogEntryType.Error)
    
    eventLog1.WriteEntry("This is an informational message");
    eventLog1.WriteEntry("This is an error message", 
       System.Diagnostics.EventLogEntryType.Error);
    

Effacement des entrées de journal

Dans cette procédure, vous utilisez la méthode Clear pour supprimer des entrées existantes du journal personnalisé.

Pour effacer des entrées de journal

  1. Dans l'éditeur de code, recherchez la procédure ClearLog_Click.

  2. Appelez la méthode Clear sur l'instance du composant EventLog :

    EventLog1.Clear()
    
    eventLog1.Clear();
    

Vérification des journaux et des sources

Dans cette procédure, vous créez deux procédures : la première pour vérifier l'existence du journal personnalisé et la seconde pour vérifier l'existence de la chaîne source. Ces procédures servent à tester les résultats de vos diverses actions lors de l'exécution du projet.

Pour vérifier l'existence du journal personnalisé

  1. Dans l'éditeur de code, recherchez la procédure VerifyLog_Click.

  2. Créez un message qui détermine si le journal des événements spécifié existe et qui affiche true ou false selon le cas. Utilisez le code suivant :

    Dim logExists As Boolean = EventLog.Exists("NewLog1")
    MessageBox.Show("Does the log exist? " & logExists.ToString())
    
    bool logExists = System.Diagnostics.EventLog.Exists("NewLog1");
    MessageBox.Show("Does the log exist? " + logExists.ToString());
    

Pour vérifier l'existence de la source

  1. Dans l'éditeur de code, recherchez la procédure VerifySource_Click.

  2. Créez un message qui détermine si la source spécifiée existe et qui affiche true ou false selon le cas. Utilisez le code suivant :

    Dim sourceExists As Boolean = EventLog.SourceExists("Source1")
    MessageBox.Show("Does the source exist? " + sourceExists.ToString())
    
    bool sourceExists = 
       System.Diagnostics.EventLog.SourceExists("Source1");
    MessageBox.Show("Does the source exist? " + sourceExists.ToString());
    

Suppression des sources

Dans cette procédure, vous écrivez du code pour supprimer une chaîne source. Pour cela, vous commencez par vérifier si la source en question (Source1) existe, puis vous appelez la méthode DeleteEventSource pour la supprimer.

Pour supprimer la source d'événements que vous avez créée

  1. Dans l'éditeur de code, recherchez la procédure RemoveSource_Click.

  2. Ajoutez le code ci-dessous :

    If EventLog.SourceExists("Source1") Then
       EventLog.DeleteEventSource("Source1")
    End If
    
    if (System.Diagnostics.EventLog.SourceExists("Source1"))
    {
       System.Diagnostics.EventLog.DeleteEventSource("Source1");
    }
    

Lecture des entrées

Dans cette procédure, vous écrivez du code pour parcourir la collection d'entrées du journal des événements et afficher les messages existants du journal.

Pour lire des entrées dans le journal personnalisé que vous avez créé

  1. Dans l'éditeur de code, recherchez la procédure ReadEntry_Click.

  2. Ajoutez le code ci-dessous :

    Dim entry As EventLogEntry
    If EventLog1.Entries.Count > 0 Then
       For Each entry In EventLog1.Entries
          System.Windows.Forms.MessageBox.Show(entry.Message)
       Next
    Else
       MessageBox.Show("There are no entries in the log.")
    End If
    
    if (eventLog1.Entries.Count > 0) 
    {
       foreach (System.Diagnostics.EventLogEntry entry 
          in eventLog1.Entries)
       {
          MessageBox.Show(entry.Message);
       }
    }
    else 
    {
       MessageBox.Show("There are no entries in the log.");
    }
    

Test du code

Dans cette section, vous utilisez l'Explorateur de serveurs pour vérifier les résultats du code que vous avez écrit.

Pour démarrer l'Explorateur de serveurs

  1. Dans le menu Affichage, accédez à l'Explorateur de serveurs.

  2. Développez le nœud du serveur actif, puis le nœud Journaux des événements situé dessous.

Pour générer et exécuter votre application

  1. Enregistrez les fichiers et appuyez sur F5 pour générer et lancer votre projet. Le formulaire s'affiche avec les huit boutons que vous avez créés.

  2. Cliquez sur le bouton Créer un journal personnalisé.

    Remarque :

    Vous devez disposer des autorisations appropriées sur le serveur qui héberge votre application pour pouvoir créer des journaux des événements Windows. Si vous recevez, à ce stade, une erreur de sécurité, contactez l'administrateur système.

  3. Revenez au produit tout en restant en mode exécution et cliquez avec le bouton droit sur le nœud Journaux des événements dans l'Explorateur de serveurs.

  4. Cliquez sur Actualiser.

  5. Vérifiez que le journal NewLog1 figure à présent dans le nœud Journaux des événements.

Pour tester la création, la suppression et la vérification des journaux personnalisés

  1. Revenez au formulaire en cours d'exécution et cliquez sur le bouton Vérifier l'existence du journal.

    Une invite doit apparaître avec le texte "True".

  2. Cliquez sur le bouton Supprimer le journal, puis cliquez de nouveau sur le bouton Vérifier l'existence du journal.

    Cette fois, l'invite doit indiquer "False".

  3. Cliquez de nouveau sur le bouton Créer un journal personnalisé pour recréer le journal.

Pour tester l'écriture et la lecture d'entrées dans le journal personnalisé

  1. Dans le formulaire, cliquez sur le bouton Écrire une entrée.

  2. Accédez à l'Explorateur de serveurs et développez le journal NewLog1.

  3. Développez le nœud Source1 situé au-dessous.

    Vous devez normalement voir que deux entrées ont été ajoutées au journal. Une entrée doit avoir une icône indiquant qu'il s'agit d'une entrée d'information et l'autre une icône indiquant qu'il s'agit d'une erreur.

  4. Retournez dans le formulaire et cliquez sur le bouton Lire l'entrée.

    Le système affiche deux invites, l'une comportant l'entrée d'information et l'autre contenant l'entrée d'erreur.

    Remarque :

    Si vous cliquez sur le bouton Écrire une entrée à plusieurs reprises, vous recevez des invites supplémentaires.

Pour tester la suppression d'entrées du journal

  1. Dans le formulaire, cliquez sur le bouton Effacer le journal.

  2. Dans l'Explorateur de serveurs, cliquez avec le bouton droit sur le nœud NewLog1, puis cliquez sur Actualiser.

    Vous pouvez constater que le journal ne contient plus d'entrées.

Pour tester la suppression de la chaîne source

  1. Dans le formulaire, cliquez sur le bouton Supprimer la source de l'événement.

  2. Cliquez sur le bouton Vérifier l'existence de la source. Vous devez normalement voir un message qui affiche "False", indiquant que la source Source1 n'existe plus.

  3. Cliquez sur le bouton Écrire une entrée.

    Remarque :

    Cette action vous permet d'écrire des entrées dans le journal, car la méthode WriteEntry définit la source si celle-ci n'existe pas actuellement.

  4. Dans l'Explorateur de serveurs, cliquez avec le bouton droit sur le nœud NewLog1, puis cliquez sur Actualiser. Vous devez normalement voir deux entrées dans le journal.

  5. Cliquez de nouveau sur le bouton Vérifier l'existence de la source. Vous devez normalement voir un message qui affiche "True" pour indiquer que la source Source1 existe.

  6. Vous pouvez également cliquer sur le bouton DeleteLog pendant le test. Le journal NewLog1 et la source Source1 sont supprimés, si bien qu'aucune modification permanente n'est apportée à la configuration de votre système.

Voir aussi

Autres ressources

Procédures pas à pas de la surveillance système

Journalisation des événements d'application, de serveur et de sécurité