De plus, à l'heure où l'on dispose d'IDE puissants et d'un débogage à distance, un tel niveau de journalisation est-il vraiment nécessaire ?
Oui, tout à fait, même si l'erreur que commettent de nombreux développeurs non qualifiés est d'essayer de corriger les bogues en utilisant la mauvaise méthode, en tendant généralement vers la journalisation alors qu'ils devraient déboguer. Il y a une place pour chacun, mais il y a au moins quelques domaines où la journalisation sera presque toujours nécessaire :
- Pour l'examen de problèmes dans un code en temps réel, lorsqu'une pause avec le débogueur aurait un effet sur le résultat du calcul (il est vrai que la journalisation aura un léger impact sur le temps dans un processus en temps réel comme celui-ci, mais l'ampleur de cet impact dépend beaucoup du logiciel).
- Pour les constructions envoyées aux bêta-testeurs ou à d'autres collègues qui n'ont peut-être pas accès à un débogueur.
- Pour vider sur le disque des données qui ne sont pas toujours faciles à visualiser dans un débogueur. Par exemple, certains IDE ne peuvent pas analyser correctement les structures STL.
- Pour avoir une idée du déroulement normal de votre programme.
-
Pour faire du code plus de lire et de commenter, comme ça :
// Now open the data file
fp = fopen("data.bin", "rb");
Le commentaire ci-dessus pourrait tout aussi bien être placé dans un appel à l'enregistrement :
const char \*kDataFile = "data.bin";
log("Now opening the data file %s", kDataFile);
fp = fopen(kDataFile, "rb");
Cela dit, vous avez raison à certains égards. L'utilisation du mécanisme de journalisation en tant que traceur de pile glorifié générera des fichiers de journalisation de très mauvaise qualité, car il ne fournit pas un point de défaillance suffisamment utile pour que le développeur puisse l'examiner. La clé ici est évidemment l'utilisation correcte et prudente des appels de journalisation, qui, je pense, se résume à la discrétion du développeur. Vous devez prendre en compte le fait que vous créez essentiellement les fichiers journaux pour vous-même Vos utilisateurs ne s'y intéressent pas et interpréteront de toute façon mal leur contenu, mais vous pouvez les utiliser pour déterminer au moins pourquoi votre programme s'est mal comporté.
En outre, il est assez rare qu'un fichier journal vous indique la source directe d'un certain bogue. D'après mon expérience, il fournit généralement un aperçu de la manière dont vous pouvez reproduire un bogue, puis, soit en le reproduisant, soit en le déboguant, trouver la cause du problème.