Format du fichier journal des événements
Chaque journal des événements contient un en-tête (représenté par la structure d' _ _ en-tête du fichier de journalisation Elf ) qui a une taille fixe, suivi d’un nombre variable d’enregistrements d’événements (représentés par les structures EVENTLOGRECORD ) et d’un enregistrement de fin de fichier (représenté par la structure de l' _ _ enregistrement de l’aide d’Elf).
La structure d' _ _ en-tête du fichier de journalisation Elf et la structure d' _ _ enregistrement du EOF Elf 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.
Quand 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.

Les enregistrements d’événements sont organisés de l’une des manières suivantes :
Sans habillage. 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 l' _ _ enregistrement de l’ancien EOF). L’exemple suivant illustre la méthode sans habillage :
HEADER (ELF_LOGFILE_HEADER) EVENT RECORD 1 (EVENTLOGRECORD) EVENT RECORD 2 (EVENTLOGRECORD) EOF RECORD (ELF_EOF_RECORD)La non-encapsulage 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é jusqu’à ce que la limite de taille du journal des événements soit atteinte. La taille du journal des événements est limitée par la valeur de configuration MaxSize ou par la quantité de ressources système.
Lorsque la limite de taille du journal des événements est atteinte, elle peut commencer à inclure dans un wrapper. L’encapsulation est contrôlée par la valeur de configuration de rétention . Pour plus d’informations sur les valeurs de configuration du journal des événements, consultez EventLog Key.
Restrictions d'. Les enregistrements sont organisés en mémoire tampon circulaire. Au fur et à mesure de l’ajout de nouveaux enregistrements, les enregistrements les plus anciens sont remplacés. L’emplacement des enregistrements les plus anciens et les plus récents varie. L’exemple suivant illustre la méthode d’encapsulage.
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 des enregistrements 1 à 101 a été remplacé.
Il y a un espace entre l' _ _ enregistrement de EOF Elf et l’enregistrement le plus ancien, car le système efface un nombre entier d’enregistrements pour libérer de l’espace pour le nouvel enregistrement. Par exemple, si l’enregistrement le plus récent est de 100 octets et que les deux enregistrements les plus anciens ont une longueur de 75 octets, le système supprime les deux enregistrements les plus anciens. Les 50 octets supplémentaires seront utilisés ultérieurement lors de l’écriture de nouveaux enregistrements.
Un fichier journal d’événements a une taille fixe et lorsque les enregistrements du fichier sont renvoyés à la ligne, 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 à partir 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 l' _ _ en-tête de fichier journal Elf. Si l’espace disponible à la fin du fichier est inférieur à la partie fixe de EVENTLOGRECORD (0x38 octets), tout le nouvel enregistrement est écrit au début du fichier, immédiatement après l' _ _ en-tête du fichier journal Elf. Les octets inutilisés à la fin du fichier seront remplis avec le modèle 0x00000027.
Pour plus d’informations et pour obtenir un exemple de code, consultez création de rapports sur un événement.