|
|
|
|
Quelqu' un peut il me donner d' idée sur la création de fichier log
pour garder traçe de l'exécution des fonctions d' une dll.
Je tente avec fopen et stderr mais rien de concret
Ce que je veux est que le fichier log garde l' information
sur toutes les grandes étapes d' exécution de mon programme
afin de pouvoir m' indiquer quelle partie s' est bien déroulée
et quelle partie ne l' a pas été
Car ceci me permettra de savoir réellement où se pose un problème
Merci de m' éclairer svp
Je compte sur vous !!!
Configuration: Windows XP Internet Explorer 7.0
Ben peu importe que ce soit dans une dll ou un programme classique, tu ouvres un std::ofstream et tu écris dedans s'il est bien ouvert. A la fin tu le fermes et c'est fini.
#include <fstream>
#include <iostream>
int main(){
const char *filename = "plop.log";
std::ofstream ofs(filename);
if(!ofs){
std::cerr << "impossible d'écrire dans [" << filename << ']' << std::endl;
throw;
}
//...
ofs << "debut" << std::endl;
//...
ofs << "etape 1" << std::endl;
//...
ofs << "etape 2" << std::endl;
//...
ofs << "fin" << std::endl;
ofs.close();
return 0;
}
On compile et on exécute : (mando@aldur) (~) $ g++ -W -Wall plop.cpp (mando@aldur) (~) $ ./a.out On vérifie que plop.log contient bien les messages : (mando@aldur) (~) $ cat plop.log debut etape 1 etape 2 fin Bonne chance |
En fait il faut bien comprendre que créer fichier de log, ça consiste juste à ouvrir une fichier et écrire dedans. Quand tu ouvres un fichier,
void write_log(const char *msg){
std::ofstream ofs("plop.log",std::ofstream::app); // fichier de log ouvert en append
if(ofs) ofs << msg << std::endl;
ofs.close();
}
Bonne chance |
Merci mamiemando
|
Ben ca c'est ton programme qui doit le gérer. Tu peux compléter la fonction write_log que je t'ai donné en utilisant ça pour récupérer la date :
#include <fstream>
#include <ctime>
void write_log(const char *msg,const char *filename_log = "plop.log"){
std::ofstream ofs(filename_log,std::ofstream::app); // fichier de log ouvert en append
if(ofs){
time_t a;
time(&a);
ofs << ctime(&a) << ' ' << msg << std::endl;
}
ofs.close();
}
Ensuite à toi d'appeler write_log dans tes fonctions a bon escient. void f(){
write_log("entre dans f");
// ... code de la fonction f
write_log("sort de f");
}
Bonne chance |
Désolé je comprends pas. Je ne connais pas windows. Pour moi un programme ça peut utiliser des librairies, donc libre à toi d'appeler les fonctions de cette librairie que tu veux. Je ne comprends pas ce qeu tu veux faire peut-être. Reviens à un problème C++ sinon je ne peux pas t'aider.
|