[C++] Logger en C/C++

Logger en C/C++ [C++] - C++ - Programmation

Marsh Posté le 03-02-2011 à 10:09:29    

Bonjour,
 
Je cherche un moyen de logger dans une petite appli que je fais en C++ natif.
Le code doit être portable, je compile donc avec minGW (g++) sous windows.
 
J'ai essayé plusieurs librairies, comme:
- Boost log (impossible à compiler bien que Boost compile).
- Pantheios (demande beaucoup de dépendances pour la compil, j'ai laissé tomber)
- log4cxx (bonne chance pour compiler ca avec minGW)
- glog (mal porté sous windows, ne compile qu'avec Visual studio)
- axter's ezlogger (ne compile pas, requiert windows.h et envoie des tonnes d'erreurs comme quoi des fonctions ont été mal définies. La compil avec -fpermissive ne donne rien de mieux).
 
J'ai besoin de quelque chose de portable, thread safe, sans dépendances (compilable avec uniquement les lib C/C++ standard) et si possible léger.
J'aurais utilisé ezlogger si ça avait compilé. SI jamais vous y êtes arrivé avec minGW je veux bien avoir vos options de compil, le site de ezlogger ne dit rien à ce sujet.
Si vous connaissez une autre lib, je suis preneur  :jap:  
 
Merci d'avance,
David

Reply

Marsh Posté le 03-02-2011 à 10:09:29   

Reply

Marsh Posté le 03-02-2011 à 12:21:37    

gelatine_velue a écrit :

Le code doit être portable, je compile donc avec minGW (g++) sous windows.

Portable sur quels OS ? Sur gros IBM MVS et sur téléphone portables Nokia Symbian et Samsung Bada ? Il faut absolument définir le périmètre. Un proverbe chinois dit que pour atteindre ses objectifs, il faut d'abord définir ses objectifs.
 
Vous travaillez sous Windows. Donc je suppose que vous voulez une solution pour Windows, et probablement pour plusieurs versions de Windows. Lesquelles ? Windows 7 64 bit et Windows 3.1 ? Un proverbe chinois dit ...
 
Se logger ? Qu'entendez-vous par là ? Se connecter en local ou via un réseau, et dans ce dernier cas, quel réseau ?
 
Pourquoi chercher des bibliothèques tiers, alors qu'il semble que les API standards soient suffisantes ?
 
 
 

Reply

Marsh Posté le 03-02-2011 à 12:29:56    

billgatesanonym a écrit :


Se logger ? Qu'entendez-vous par là ? Se connecter en local ou via un réseau, et dans ce dernier cas, quel réseau ?


Il veut dire enregistrer dans un fichier une trace de l'exécution de son programme


---------------
Seul Google le sait...
Reply

Marsh Posté le 03-02-2011 à 12:30:35    

billgatesanonym a écrit :

Portable sur quels OS ? Sur gros IBM MVS et sur téléphone portables Nokia Symbian et Samsung Bada ? Il faut absolument définir le périmètre. Un proverbe chinois dit que pour atteindre ses objectifs, il faut d'abord définir ses objectifs.
 
Vous travaillez sous Windows. Donc je suppose que vous voulez une solution pour Windows, et probablement pour plusieurs versions de Windows. Lesquelles ? Windows 7 64 bit et Windows 3.1 ? Un proverbe chinois dit ...
 
Se logger ? Qu'entendez-vous par là ? Se connecter en local ou via un réseau, et dans ce dernier cas, quel réseau ?
 
Pourquoi chercher des bibliothèques tiers, alors qu'il semble que les API standards soient suffisantes ?
 
 
 


Je pense que le sujet, c'est plus de sortir un fichier de journal (log) que d'avoir un système d'utilisateurs loggés sur la machine.


---------------
last.fm
Reply

Marsh Posté le 03-02-2011 à 13:17:24    

billgatesanonym a écrit :

Portable sur quels OS ? Sur gros IBM MVS et sur téléphone portables Nokia Symbian et Samsung Bada ? Il faut absolument définir le périmètre. Un proverbe chinois dit que pour atteindre ses objectifs, il faut d'abord définir ses objectifs.
 
Vous travaillez sous Windows. Donc je suppose que vous voulez une solution pour Windows, et probablement pour plusieurs versions de Windows. Lesquelles ? Windows 7 64 bit et Windows 3.1 ? Un proverbe chinois dit ...


 
Quand je dis portable c'est non dépendant de librairies proprios comme l'api win32, notamment pour pouvoir le compiler sous linux. Si il est compilable nativement alors il devrait être portable partout (Symbian OS et gros système compris). La version de windows on s'en fout un peu, g++ existe pour toutes.
 

billgatesanonym a écrit :


Se logger ? Qu'entendez-vous par là ? Se connecter en local ou via un réseau, et dans ce dernier cas, quel réseau ?


Et comme j'ai expliqué (ainsi que theshockwave et breizhbugs) que j'avais essayé d'autres systèmes de log (voir premier post), c'est évidemment d'écrire dans un fichier de log que je parle.
 

billgatesanonym a écrit :


Pourquoi chercher des bibliothèques tiers, alors qu'il semble que les API standards soient suffisantes ?


 
Ah? je serais curieux de voir quelles API de log standard le C++ a. :ange:


Message édité par gelatine_velue le 03-02-2011 à 13:21:20
Reply

Marsh Posté le 03-02-2011 à 13:24:55    

Cela dit, je suis d'accord avec billgatesanonym dans la mesure où en fonction des besoins que tu auras sur ce logger, tu pourras envisager telle ou telle solution. Faire un logger basique en soit (même thread safe) ce n'est pas compliqué, donc la réécriture me semble envisageable.
 
Après, avoir un logger qui va permettre d'avoir des modules de mise en forme, des sorties diverses (filtrage pour limiter les sorties sur la console, mais log complet dans un fichier, etc ...) demandera peut-être un peu plus d'effort et peut encourager l'utilisation d'un outil déjà fait.


---------------
last.fm
Reply

Marsh Posté le 03-02-2011 à 13:32:32    

theshockwave a écrit :

Cela dit, je suis d'accord avec billgatesanonym dans la mesure où en fonction des besoins que tu auras sur ce logger, tu pourras envisager telle ou telle solution. Faire un logger basique en soit (même thread safe) ce n'est pas compliqué, donc la réécriture me semble envisageable.
 
Après, avoir un logger qui va permettre d'avoir des modules de mise en forme, des sorties diverses (filtrage pour limiter les sorties sur la console, mais log complet dans un fichier, etc ...) demandera peut-être un peu plus d'effort et peut encourager l'utilisation d'un outil déjà fait.


 
Je n'ai besoin de rien comme fonctionnalités, juste la gestion de plusieurs niveaux et le log dans un fichier. Ca m'ennuie un peu de réinventer la roue pour ça alors que je suis sûr qu'une petite librairie faite pour de l'embarqué m'irait très bien.

Reply

Marsh Posté le 04-02-2011 à 11:17:24    

Bon finalement j'ai résolu mon problème de compil en utilisant msys avec log4cplus, livré avec mingw. Compiler avec, puis copier coller les dossiers include et .slib et les linker proprement.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed