ClapLog - Utilisation

De Wiki de Lapalys
Révision datée du 19 avril 2013 à 21:51 par HFDASysop (discussion | contributions) (Page créée avec « Le composant propose deux séries de fonctions : * les surcharges de fonctions standard * les fonctions de mesure de temps d'exécution = Initialiser les fonctions de Log = ... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Le composant propose deux séries de fonctions :

  • les surcharges de fonctions standard
  • les fonctions de mesure de temps d'exécution

Initialiser les fonctions de Log

Pour pouvoir utiliser correctement le composant, il est nécessaire non seulement d'initialiser le composant (avec bComposantInit) mais aussi d'initialiser les fonctions de Log. Pour cela, utiliser, avant tout appel, la fonction LogInit(). Elle permet de donner le nom du répertoire final où sera mis le fichier de log (alimenté par les fonctions ci-dessous).

Il est également possible de préciser, dans cette fonction, des informations relatives à un serveur SMTP de sorte à ce que le développeur soit prévenu en cas d'erreur (par exemple : si le fichier de log ne peut être déplacé vers son répertoire de destination). Dans le cas où le nom du serveur reste vide, aucun courriel ne peut évidemment être envoyé par le composant.

Les surcharges des fonctions standard

Comme précisé dans le texte d'introduction de ce composant, ce dernier va surcharger une série de fonctions standard pour loguer les ouvertures/fermetures de fenêtre et les impressions. Les liens proposés ouvrent la documentation de PC SOFT. En effet, la surcharge ne fait qu'intercepter l'appel mais lance, à la fin, la fonction standard. Le comportement de ces fonctions ne change donc pas par rapport aux fonctions standard :

Les fonctions de mesure de temps d'exécution

Il est aussi possible d'utiliser des fonctions permettant de personnaliser l'appel (par exemple en début et fin d'une procédure, d'une boucle, ...). Pour cela, il suffit d'appeler la fonction LogCommence(). Cette fonction renvoie un identifiant unique qui devra être réutilisé dans la fonction LogArrête(). Pour placer une mesure intermédiaire, il suffit d'utiliser LogÉtape() avec le même identifiant.

Le fichier de sortie

Le fichier de sortie est alimenté soit par les fonctions surchargées, soit par LogArrête. En effet, les instructions LogDémarre et LogÉtape mémorisent des informations qui seront ensuite utilisées dans LogArrête.

Le fichier de sortie est un fichier texte avec séparateur point-virgule (CSV). Sa structure est la suivante : ID;DateEtHeureCouranteAuMomentDeLappel;DuréeDuProcessus;PileDuCodeAppelant;MessagePersonnalisé

Le MessagePersonnalisé est du texte que l'on peut mettre en paramètre de la fonction LogArrête() pour identifier le processus dans lequel il est appelé. Ce message ne peut pas comporter de TAB, de RC, de point-virgule ( ; ) ou de pipe ( | ).

Si un LogCommence() a été appelé sans un LogArrête() ne suit, le fichier de log écrira, tout à la fin, les appels qui ne se sont pas terminés. Vous pouvez ainsi corriger votre code pour pouvoir utiliser les données de Log.

Gestion du fichier de sortie

Ce fichier de sortie est créé dans le répertoire temporaire de Windows et ensuite Zippé pour aller dans le répertoire de destination. Un fichier est créé à chaque exécution du programme qui contient le composant. Le nom du fichier Log est donc Log_NomUsager_NumProcessusDuProgramme_DateHeure. Le NomUsager est personnalisable dans l'instruction LogInit(). S'il reste vide, la variable d'environnement "COMPUTERNAME" est utilisé. Si cette dernière est également vide, le nom "DefaultLogUser" sera utilisé. La DateHeure sont la date et l'heure d'ouverture du programme.

Pour créé physiquement le fichier de sortie et ensuite l'envoyer dans sa destination, il est nécessaire d'utiliser deux fois la fonction LogDéplace().

Au début du projet, il faut utiliser LogDéplace(vrai) et à la fin du code, utiliser LogDéplace(faux). Par l'appel de cette fonction au début, le composant vérifie si il n'y a pas de fichier Log qui traînent. Si tel est le cas, le composant va tenter de les déplacer dans leur répertoire de destination. En cas d'échec, un courriel peut être envoyé (voir la fonction LogInit() pour paramétrer le serveur de courriel).

À la fin du projet, l'instruction ferme le fichier de log et tente de l'envoyer dans son répertoire de destination.