14 votes

Bibliothèque de journalisation pour C

Je suis à la recherche d'une bibliothèque de journalisation productive et simple pour le langage C, qui peut produire le journal dans un fichier. L'affichage des messages dans le log que je veux faire ressemble à ceci :

date-time tag message

Il serait intéressant de contrôler le niveau de détail des messages et la taille du fichier.

J'ai trouvé deux projets qui me conviennent. Il s'agit de log4c y nglogc .

log4c semble trop gros. nglogc convient assez bien, mais a aussi une fonction redondante. peut-être me direz-vous plus de variantes ?

0voto

jtuki Points 53

Je suis également en train de trouver des solutions à ce problème. La réponse de @edwin-buck est simple et répond à mes besoins.

Je ne connais vraiment rien au multi-threading et au thread-safe, mais après avoir compilé sous le compilateur Visual Studio (il peut donner des avertissements et des conseils), et après avoir fait des recherches sur Google, je pense que quelques modifications pourraient rendre le code ci-dessus thread-safe et meilleur.

// file log.c
void log(const char* tag, const char* message) {
   time_t now;
   struct tm _calendar_time;
   char _buf[MAX_COUNT];

   time(&now);
   localtime_s(&_calendar_time, &now);

   strftime(_buf, MAX_COUNT, "%c", &_calendar_time);
   printf("%s [%s]: %s\n", _buf, tag, message);
}

N'hésitez pas à me corriger si je me trompe .

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