Comment écrire Des Journaux

Table des matières:

Comment écrire Des Journaux
Comment écrire Des Journaux

Vidéo: Comment écrire Des Journaux

Vidéo: Comment écrire Des Journaux
Vidéo: Rédiger un article de presse 2024, Peut
Anonim

Aujourd'hui, la plupart des applications et des applications système enregistrent périodiquement des informations sur le processus de leur travail, les erreurs et les échecs dans des journaux spéciaux appelés journaux. La plupart des systèmes d'exploitation à usage général fournissent des services qui vous permettent d'écrire des journaux à l'aide d'une interface de programmation standard.

Comment écrire des journaux
Comment écrire des journaux

Nécessaire

  • - compilateur C;
  • - SDK de plate-forme Windows;
  • - Développer un package pour la glibc.

Instructions

Étape 1

Ajoutez la prise en charge de l'écriture de journaux dans le journal système à partir de votre application conçue pour fonctionner sous les systèmes d'exploitation de la famille Windows.

Utilisez la fonction API RegisterEventSource pour inscrire l'application en tant que source d'événements, la fonction ReportEvent pour ajouter une entrée au journal et la fonction DeregisterEventSource pour fermer le descripteur renvoyé par RegisterEventSource.

Il est logique d'appeler RegisterEventSource lors de l'initialisation de l'application et d'enregistrer le descripteur renvoyé à tout moment, afin que les entrées du journal puissent être placées à différents endroits du programme. L'exemple le plus simple d'écriture dans le journal Windows pourrait ressembler à ceci:

HANDLE hLog = RegisterEventSource (NULL, "MyApplicationName");

if (hLog! = NULL)

{

if (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Texte du message / 0", NULL))

{

// l'événement a été enregistré avec succès

}

DésenregistrerEventSource (hLog);

}

Vous trouverez plus de détails sur la sémantique de la fonction ReportEvent dans MSDN à l'adresse https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679 %28v=vs.85%29.aspx. De plus, vous devez mettre des données sur le module exécutable de l'application dans le registre système et ajouter des ressources dans un format spécifique au module lui-même ou à une bibliothèque dynamique tierce. Pour plus d'informations sur les clés de registre pour le service de journal des événements, voir

Étape 2

La connexion sur les systèmes d'exploitation compatibles Linux peut généralement être effectuée à l'aide du démon syslog. Ce service dispose d'une interface de niveau applicatif sous la forme d'un ensemble de fonctions dont les déclarations sont placées dans le fichier d'en-tête syslog.h.

Utilisez la fonction openlog pour créer une connexion au service syslog à partir d'une application ou d'une bibliothèque. Appelez les fonctions syslog ou vsyslog pour mettre les messages dans le journal. Après la fin des événements d'enregistrement ou à la fermeture de l'application, fermez la connexion au service en appelant la fonction closelog. De plus, vous pouvez configurer les paramètres pour ignorer les appels qui ajoutent des enregistrements d'événements avec une priorité spécifique à l'aide de la fonction setlogmask. Un exemple d'écriture de messages dans le journal pourrait ressembler à ceci:

openlog ("MonApplication", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

syslog (LOG_NOTICE, "MonApplication est lancée avec PID% d", getuid ());

syslog (LOG_INFO, "Message d'information!");

closelog ();

Pour plus d'informations sur les paramètres des fonctions de l'API syslog, consultez la documentation libc info.

Étape 3

Écrivez des journaux dans des fichiers arbitraires en utilisant votre propre implémentation du sous-système de persistance des événements. L'une des solutions les plus simples à ce problème consiste à créer plusieurs fonctions dans la portée globale, dont l'une ouvre un fichier avec un nom spécifique dans le mode d'ajout d'informations, la seconde le ferme et la troisième ajoute une chaîne de message qui lui est transmise comme un paramètre à ce fichier. Conceptuellement, cette solution ressemble à l'interface de programmation syslog sous Linux.

Utilisez les fonctions fopen et fclose de la bibliothèque standard C pour ouvrir et fermer un fichier, respectivement. Appelez fwrite pour ajouter des informations au fichier. Vous pouvez également utiliser des fonctions spécifiques à la plate-forme (par exemple, CreateFile sous Windows) et des méthodes d'objets des frameworks utilisés qui encapsulent la fonctionnalité de travail avec des fichiers.

Conseillé: