57 votes

Suggestions pour le cadre de journalisation C++

Je suis à la recherche d'un cadre de journalisation C++ avec les caractéristiques suivantes :

  • les logs ont une gravité (info, warning, error, critical, etc)
  • les journaux sont étiquetés avec un nom de module
  • dispose d'une interface utilisateur (ou CLI) permettant de configurer les modules qui seront effectivement consignés dans un fichier, ainsi que la gravité minimale requise pour qu'un journal soit écrit dans un fichier.
  • dispose d'une visionneuse qui me permet d'effectuer des recherches par module, par gravité, par nom de module, par nom d'erreur, etc.

11voto

Casey Points 4095

Je ne suis pas sûr de la configuration à partir d'une interface utilisateur ou d'une interface CLI. J'ai utilisé ces deux frameworks de journalisation à un moment ou à un autre.

http://sourceforge.net/projects/log4cplus/
http://logging.apache.org/log4cxx/index.html

Il ne serait pas trop difficile de piloter la journalisation à partir d'un fichier de configuration qui pourrait être modifié à la main ou par une application GUI ou CLI rapide et sale. Il serait peut-être un peu plus difficile de les ajuster dynamiquement mais ce ne serait pas trop grave.

Mise à jour :

Il semble que le Boost.Log proposé est maintenant dans Boost 1.54 qui est à une version stable. Si vous utilisez déjà Boost, je vous conseille d'y jeter un œil.

5voto

ossandcad Points 508

Pas de visionneuse mais vous pouvez essayer pantheios . Je l'utilise depuis presque un an maintenant et j'en suis très satisfait.

4voto

dcw Points 2181

Je suggère fortement Pantheios car c'est le seul qui soit complètement sûr du point de vue des types, et il est également très efficace . Il impose un peu de travail à l'utilisateur, en sélectionnant le bon "front-end" et "back-end", mais une fois que vous l'avez fait fonctionner, vous pouvez simplement le fixer et l'oublier.

Il ne fournit pas de fonctions d'enregistrement sophistiquées - par exemple des fichiers roulants - mais c'est par le design Elle est en effet destinée à être utilisée en combinaison avec d'autres bibliothèques de journalisation qui ont plus de fonctionnalités (mais des performances et une sécurité de type moins bonnes).

3voto

JamieH Points 466

Si vous vous souciez des performances, je vous suggère de consulter le site Pantheios . En particulier, il y a très haute performance Elle peut être utilisée en combinaison avec d'autres bibliothèques de journalisation. Elle agit comme une couche efficace et sûre entre la bibliothèque de journalisation (telle que log4cxx) et votre code d'application.

2voto

Matthieu M. Points 101624

Comme toujours, Boost propose une bibliothèque en chair et en os : Boost.Logging

-> Il permet la configuration en cours d'exécution, de sorte que vous pourriez brancher une CLI sur lui.

Mais comme d'habitude, il n'y a pas d'interface graphique ni de CLI pour commencer.

Notez que l'interface graphique est un peu plus difficile à réaliser. Nous en avons un au travail (ainsi que notre propre cadre de journalisation), mais bien sûr, ils sont propriétaires et je ne pourrai pas vous donner de code.

Je peux dire cependant (en toute sécurité je pense) que le GUI think n'est rien de plus qu'un parseur de log. Puisque toutes les applications journalisent avec le même format, l'interface graphique analyse les fichiers journaux nécessaires lorsque vous le demandez.

Je sais qu'un stagiaire a travaillé sur l'exploitation des logs : essentiellement en les analysant et en les structurant dans une base de données avec une indexation par "tags", mais je n'en ai pas entendu parler officiellement et je crains qu'il soit parti à la poubelle dès la fin de son stage. Dommage, car la possibilité d'indexer les messages à partir d'un ensemble prédéfini de tags était vraiment utile lorsque vous recherchez un log particulier...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X