Est-il un journal de la bibliothèque pour le C? (comme log4j pour C)
J'ai travaillé en Java pour un long temps, et j'ai été accostumed l'utilisation de la bibliothèque log4j pour les journaux. C'est une merveilleuse, et maintenant que je suis passer au C, je voudrais savoir si il y a une bibliothèque semblable pour les journaux dans cette langue.
Vous devez vous connecter pour publier un commentaire.
Jusqu'à présent, je connais les bibliothèques suivantes pour l'enregistrement: log4c, sclog4c, syslog, zlog.
log4c
log4c a été inventé pour être un Log4J pour C. Si vous êtes particulièrement à la recherche de "quelque chose comme Log4J" parce que vous voulez qu'il soit comme "Log4J", c'est probablement ce que vous cherchez.
Liens
sclog4c
sclog4c a été inventé pour être aussi simple que les fonctions les plus utilisées de
java.util.logging
- aussi simple que possible. Si vous êtes à la recherche de "quelque chose comme Log4J" parce que vous voulez qu'il soit aussi petit et simple que possible, c'est probablement ce que vous cherchez.Liens
syslog
syslog a été développé à l'origine par Eric Allman dans le cadre de sendmail et est devenu le standard de facto pour le démon /serveur de journalisation dans POSIX environnements. Il est de type client-serveur basée sur un, généralement le démon qui veut quelque chose pour être connecté enverra les données du journal d'un syslogd à l'écoute sur le port UDP 514.
Si vous êtes particulièrement à la recherche de "quelque chose comme Log4J" parce que vous voulez réellement à se connecter à un démon ou un serveur, c'est probablement ce que vous cherchez.
Liens
zlog
Celui-ci a été inventé pour être comme log4c, juste en fonction de sa description, plus petits et plus souple à la fois.
Liens
Divers
Puissance vs Maigre
En raison de la différente manière dont C liens, pense et qui fonctionne, je ne voudrais pas regarder pour l'abattage d'un cadre qui est puissant dans le cas général, contrairement à Java. Si vous allez pour le "plein fouet les applications de bureau" et au-delà, de l'exploitation forestière avec de puissants cadres comme dans Java est certainement une bonne façon d'aller. Si vous êtes à la mise en œuvre outils de ligne de commande ou similaires, je parie que
un maigre cadre est mieux - pourquoi voulez-vous dépendent lib2xml juste pour le plaisir de l'exploitation forestière...
Vitesse
En cas de vitesse resp. pour ne pas perdre de cycles de questions à vous pour une raison quelconque, pour un look de journalisation qui utilise des macros pour évaluer le niveau de log avant d'autres arguments sont évalués.
L'inconvénient est que vous ne pouvez pas appeler un journal de routine avec des arguments qui ont des effets de bord. Mais cela ne devrait pas être un cas d'utilisation, de toute façon. Il serait étonnant que le journal déclarations n'ont pas été ignorable parce qu'il contenait des effets secondaires.
L'avantage est que les instructions de journalisation dans un tel cadre, ajoutez donc quelques cycles qu'ils sont presque pas juste un accès à un mondial, un contrôle et une branche conditionnelle, en ignorant le reste du journal de code - 2 instructions, 1 cycle dans le meilleur des cas sur de nombreux Processeurs.
Avertissement
Je suis l'auteur de sclog4c.
Il y a un log4c de la bibliothèque C qui imite le log4j bibliothèque Java. À partir de la log4c documentation:
Une autre option à considérer est zf_log:
Par exemple, qui va de la sortie INFO journal du message:
Qui ressemblera à:
Représentation exacte est configurable et dépend du type de construction (debug /release).