Easy log - logging et tracing - mettre en place simplement un systeme de tracage.

Soyez le premier à donner votre avis sur cette source.

Vue 6 231 fois - Téléchargée 315 fois

Description

Lorsque que l'on met au point un programme, il est toujours utile d'afficher à l'écran ou d'écrire dans un fichier diverses informations comme la valeur de certaines variables, le contenu d'un tableau, ou n'importe quel type de commentaires. Ceci peut evidemment se faire à la main (comme c'est souvent le cas), mais lorsque votre source dépasse les 500 lignes (même avant d'ailleurs...), ça devient vite difficile à gérer. Imaginez en effet que vous avez placé 36 "cout" dans une fonction pour vérifier son bon fonctionnement, et que vous ne voulez temporairement plus avoir d'affichage lors de son exécution pour mesurer ses performances en terme de temps. Biensûr, il suffit de mettre tous ces "cout" en commentaire... bah oui, c'est long et vous allez en oublier la moitiée ! Easy Log vous permet de simplifier tout ça en vous aidant à créer vos propres flux de sortie (standard ou fichier) et à les gérer efficacement.

Source / Exemple :


Code source, exemple d'utilisation et documentation au format HTML dans le zip.

Conclusion :


Bugs connus :
----------------
Il est pour le moment impossible d'utiliser le manipulateur "endl" dans les flux créés grâce aux classes BStream et FStream. Vous pouvez par contre biensûr utiliser le "\n" (qui est d'ailleurs meilleur en terme de rapidité, mais bon...) pour effectuer des passages à la lignes.

Si quelqu'un a la moindre idée pour régler ce problème ou n'importe quelle suggestion pour améliorer tout ça, envoyez moi un mail : foricher.david@free.fr

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
50
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
6 juin 2006

merci pour l'infos sur cerr, djl, je savais pas ca.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
pour ton probleme de endl, si on affiche sur cerr ca pose pas de probleme, cette sortie erreur n'est pas bufferisée, affiche '\n' tout en etant sur que le text sera afficher, mem en cas de gros plantage
bien sur c'est plus lent mais la on parle de debug
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ouai c'est pas mal, moi j'aime bien

c'est vrai que c'est plus pratique comme ca, et bonne idée de foutre ca dans un namesapce

juste une chose, ca sert a rien de planquer une enum derriere un typedef
Messages postés
50
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
6 juin 2006

Le classique #DEBUG fonctionne evidemment tres bien et tu peut creer des niveaux de priorites avec ca aussi (#DEBUG, #INFO, etc...) mais c'est plus facile a gerer avec mon systeme de classe. De plus, le C++ est oriente objet, et ca fait plus propre ;)
Messages postés
14
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
11 septembre 2004

Salut, ça a l'air intéressant pour le débuggage mais je me demande si il n'y a pas moyen de gérer tout ça plus simplement...

En effet, si tu utilises :

#define DEBUG

..au début de ton programme, puis que, pour faire des tests à l'écran, tu utilises à chaque fois :

#ifdef DEBUG
printf("test de la variable i : %d", i);
#endif

... Quand tu voudras enlever tous les tests, il te suffira d'enlever la ligne :

#define DEBUG

... Au début de ton programme et plus aucun test ne s'exécutera.

Je ne suis que débutant et je ne suis pas sûr de ce que j'avance... Mais ça peut être intéressant de comparer les deux méthodes.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.