J'envisage de commencer à utiliser la bibliothèque de journalisation Boost.Log . Quelqu'un utilise-t-il Boost.Log? Veuillez partager vos expériences à cet égard.
Les autres bibliothèques que j'envisage sont Apache log4cxx (il semble fastidieux à installer mais mes coéquipiers veulent quelque chose de simple pour commencer) et Pantheios (le même problème car il fonctionne avec un front et un back end supplémentaires).
[~ # ~] mise à jour [~ # ~] : depuis que cela a été écrit, j'ai remplacé Boost.Log par ma propre journalisation personnalisée, principalement parce que je a décidé de me débarrasser de toutes les dépendances Boost dans tous mes projets pour diverses raisons. Si vous êtes d'accord avec l'utilisation de Boost, je suppose que Boost.Log est toujours un choix valide à en juger par réponse de Klaim .
Mon expérience avec Boost.Log en 2010 suit.
J'ai réussi à intégrer Boost.Log dans mon moteur de jeu et je ne peux en parler que de bonnes choses. Bien sûr, il est un peu tôt pour l'utiliser, car la version 2 sera la version réelle qui deviendra le Boost.Log officiel.
Attention, la version "1.0" disponible n'est pas maintenue. Pour recevoir des mises à jour, vous devez utiliser la version Edge (saignement) qui peut devenir instable. Tenez-en compte si vous comptez utiliser cette version dans des projets sérieux. Si vous n'avez pas peur d'utiliser des versions Edge qui saignent ou une future rupture, alors allez-y. C'est vraiment agréable à utiliser car il est dans son état actuel.
J'ai longtemps pensé que le système de journalisation hiérarchique dans log4j/log4cxx était supérieur, mais Boost.Log m'a fait penser le contraire. Le filtrage et les attributs sont beaucoup plus flexibles.
La conception des puits séparés par frontend/backend facilite l'ajout de backends supplémentaires. Pas besoin de vous soucier des problèmes de synchronisation ou de filtrage gérés par le frontend. La bibliothèque est également livrée avec de nombreux backends, fichiers de rotation, console, syslog, registre d'événements Windows, etc.
J'ai écrit mes propres backends d'évier; l'un va à la console du jeu et l'autre à une sorte de système de notification pour les événements plus graves. Était plus facile que ce à quoi je m'attendais, il a été opérationnel en quelques minutes.
Enfin et surtout, le mainteneur/développeur est également très utile. Vous obtiendrez beaucoup d'aide dans les forums du projet. Il a corrigé deux bugs (dont un majeur) juste ce week-end que j'ai signalé :-)
MISE À JOUR: J'utilise Boost.Log dans un système de moteur de jeu et j'en suis très content. Il est rapide, sans fil et très flexible lorsque vous en avez besoin.
Boost.Log devrait être fourni avec toutes les bibliothèques Boost dans une prochaine version cette année (2013).
Boost.Log est conçu pour configurer un système de journalisation dessus. Si vous lisez la documentation, vous verrez qu'elle est si flexible que tout système de journalisation auquel vous pouvez penser peut être construit avec elle (comme la journalisation sur un ordinateur distant).
Donc, il existe des macros pour faciliter l'utilisation dans les projets simples mais je pense que c'est le genre de bibliothèque qui est surtout utile aux personnes qui comprennent vraiment la journalisation et qui veulent construire une architecture spécifique pour leur application.
En ce qui concerne les performances, je me souviens qu'il y avait des problèmes lors de la soumission qui la rendaient lente par rapport à d'autres bibliothèques de journalisation (moins flexibles), mais comme il s'agissait d'un brouillon et que la première version n'est pas encore sortie, je ne me dérangerais pas si vous ne codiez pas un application urgente.
Au final, je pense que c'est tout simplement trop "nouveau" pour être évalué "maintenant". Il n'y a pas d'autre bibliothèque de journalisation aussi flexible que celle-ci et je ne sais pas si beaucoup de gens ressentiront le besoin de l'utiliser.
Mise à jour: un récent échange d'e-mails avec l'auteur de Boost.Log a abouti à des données suggérant que tat Boost.Log est clairement une excellente alternative pour une journalisation rapide.
J'ai récemment étudié la mise en œuvre d'un système de journalisation sur un projet que je commençais.
J'ai essayé log4cxx comme vous le mentionnez, il est en effet très fastidieux à installer. Il m'a fallu plusieurs heures pour le compiler sous VS2012 (avec d'autres bibliothèques de dépendances ...), puis il s'est juste écrasé lorsque je l'ai utilisé dans mon projet. Certes, des trucs bizarres se passent avec des discordances de bibliothèques standard, mais ne pouvaient pas le comprendre.
Je suis donc passé à log4cpp que j'ai mis en service en quelques minutes seulement. Je le trouve élégant et léger, exactement ce dont j'avais besoin. Il a le gros avantage d'avoir les mêmes fonctionnalités que le célèbre log4j & co. des systèmes de journalisation qui pourraient être un réel plus pour votre travail d'équipe (configuration via fichier de configuration, etc.)
En ce qui concerne les performances, il faut un appel de fonction pour vérifier si l'enregistreur est actif pour le niveau du message, puis un appel de fonction pour enregistrer réellement les données.
Avec quelques macros faites maison (pour ajouter LIGNE & co. Aux messages), log4cpp s'est vraiment avéré utile dans mon projet.
Malheureusement, je n'ai pas essayé Boost.Log, je ne peux donc pas en parler, mais j'espère que ces commentaires vous seront toujours utiles si vous choisissez de ne pas suivre la voie Boost.Log.