C'est une excellente question.
La première raison est "pourquoi pas?" Si vous utilisez un framework de journalisation, vous bénéficierez des avantages de la maintenabilité de l'utilisation de quelque chose déjà empaqueté.
La deuxième raison est que la journalisation est subtile.Différents threads, sessions, classes et instances d'objets peuvent tous entrer en jeu dans la journalisation, et vous ne voulez pas avoir à résoudre ce problème à la volée.
La troisième raison est que vous pouvez trouver un goulot d'étranglement au niveau des performances dans votre code. Comprendre que votre code est lent parce que vous écrivez dans un fichier sans mise en mémoire tampon ou votre disque dur est à court d'espace disque parce que l'enregistreur ne se retourne pas et compresser les anciens fichiers peut être une douleur dans le cou. La quatrième raison est que vous pouvez ajouter à syslog, ou écrire dans une base de données, ou dans une socket, ou dans des fichiers différents. Les cadres ont cette fonctionnalité intégrée.
Mais vraiment, la première réponse est la meilleure; il y a très peu d'avantages à écrire les vôtres, et tout un tas d'inconvénients.
"cerveau-mort simple à ajouter à un fichier" - vs multithread et en particulier multicœur où les threads réellement exécuter simultanément? L'ETW de Microsoft propose des buffers d'entrées ETW par processeur, ce qui me semble être la solution idéale. – pngaz