Partager via


Format du fichier journal des événements

Chaque journal des événements contient un en-tête (représenté par la structure ELF_LOGFILE_HEADER) qui a une taille fixe, suivi d’un nombre variable d’enregistrements d’événements (représenté par structures EVENTLOGRECORD) et d’un enregistrement de fin de fichier (représenté par la structure ELF_EOF_RECORD).

La structure ELF_LOGFILE_HEADER et la structure ELF_EOF_RECORD sont écrites dans le journal des événements lorsque le journal des événements est créé et sont mis à jour chaque fois qu’un événement est écrit dans le journal.

Lorsqu’une application appelle la fonction ReportEvent pour écrire une entrée dans le journal des événements, le système transmet les paramètres au service de journalisation des événements. Le service de journalisation des événements utilise les informations pour écrire une structure EVENTLOGRECORD dans le journal des événements. Le diagramme suivant illustre ce processus.

écrire un fichier journal

Les enregistrements d’événements sont organisés de l’une des manières suivantes :

  • Non encapsulé. L’enregistrement le plus ancien est immédiatement après l’en-tête du journal des événements et les nouveaux enregistrements sont ajoutés après le dernier enregistrement ajouté (avant le ELF_EOF_RECORD). L’exemple suivant montre la méthode de non-wrapping :

    HEADER                   (ELF_LOGFILE_HEADER)
    EVENT RECORD 1           (EVENTLOGRECORD)
    EVENT RECORD 2           (EVENTLOGRECORD)
    EOF RECORD               (ELF_EOF_RECORD)
    

    Le non-wrapping peut se produire lorsque le journal des événements est créé ou lorsque le journal des événements est effacé. Le journal des événements continue d’être non encapsulé tant que la limite de taille du journal des événements n’est pas atteinte. La taille du journal des événements est limitée par la valeur de configuration MaxSize ou la quantité de ressources système.

    Lorsque la limite de taille du journal des événements est atteinte, elle peut commencer à habillage. L’habillage est contrôlé par la valeur de configuration rétention. Pour plus d’informations sur les valeurs de configuration du journal des événements, consultez de clé Eventlog .

  • Emballage. Les enregistrements sont organisés en tant que mémoire tampon circulaire. À mesure que de nouveaux enregistrements sont ajoutés, les enregistrements les plus anciens sont remplacés. L’emplacement des enregistrements les plus anciens et les plus récents varie. L’exemple suivant montre la méthode de création de package de restrictions.

    HEADER                   (ELF_LOGFILE_HEADER)
    Part of EVENT RECORD 300 (EVENTLOGRECORD)
    EVENT RECORD 301         (EVENTLOGRECORD)
    .
    .
    .
    EVENT RECORD 400         (EVENTLOGRECORD)
    EOF RECORD               (ELF_EOF_RECORD)
    Wasted space
    EVENT RECORD 102         (EVENTLOGRECORD)
    EVENT RECORD 103         (EVENTLOGRECORD)
    .
    .
    .
    EVENT RECORD 299         (EVENTLOGRECORD)
    Part of EVENT RECORD 300 (EVENTLOGRECORD)
    

    Dans l’exemple, l’enregistrement le plus ancien n’est plus 1, mais est 102, car l’espace pour les enregistrements 1 à 101 a été remplacé.

    Il existe un espace entre le ELF_EOF_RECORD et l’enregistrement le plus ancien, car le système efface un nombre intégral d’enregistrements pour libérer de l’espace pour le dernier enregistrement. Par exemple, si l’enregistrement le plus récent est de 100 octets et que les deux enregistrements les plus anciens sont de 75 octets, le système supprime les deux enregistrements les plus anciens. Les 50 octets supplémentaires seront utilisés ultérieurement lorsque de nouveaux enregistrements sont écrits.

    Un fichier journal des événements a une taille fixe et, lorsque les enregistrements du fichier encapsulent, l’enregistrement à la fin du fichier est généralement divisé en deux enregistrements. Par exemple, si la position de l’écriture suivante est de 100 octets de la fin du fichier et que la taille de l’enregistrement est de 300 octets, les 100 premiers octets seront écrits à la fin du fichier et les 200 octets suivants seront écrits au début du fichier immédiatement après le ELF_LOGFILE_HEADER. Si l’espace disponible à la fin du fichier est inférieur à la partie fixe de la EVENTLOGRECORD (0x38 octets), tous les nouveaux enregistrements sont écrits au début du fichier immédiatement après le ELF_LOGFILE_HEADER. Les octets inutilisés à la fin du fichier sont remplis avec le modèle 0x00000027.

Pour plus d’informations et un exemple de code, consultez Reporting an Event.