Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : fichier de log [ Divers / Débutant(e) ] (unlimited72)

vendredi 18 juillet 2008 à 14:29:45 | fichier de log

unlimited72

Bonjour,

J'ai un petit soucis, je souhaite faire des stats dans mes méthodes pour cela j'ai crée un fichier de log (LogPerf), lequel j'appel a chaque entrée et sortie de méthode tout marche bien sauf pour une méthode :

// permet de construire le contenu de l'url qui sera renvoyé dans la methode POST
void ConstruireURL(char* composant)
{
    LogPerf("ConstruireURL", "E");
    if(temp!=NULL)
    {
        URL = strcat(temp,composant);                // si tampon existe deja, alors on concatene
    }
    else
    {
        URL = strcpy(temp,composant);                // si tampon est vide, alors on copie
    }
    LogPerf("ConstruireURL", "S");

}

mon appli doit se connecter lorsqu'en entrée je ne fait pas de log l'appli se connecte correctement mais lorsque je fais le log j'ai un refus de connection je ne comprend pas pourquoi l'appel et l'écriture dans le fichier empêche ma connection.

Code Fichier log :

int evenement=0;
void LogPerf(char* chain, char* sens) //j'ouvre le fichier au debut du WinMain
{
      //  char* logPerf="C:\\TMP\\logPerf.txt";   
     //    file_log = fopen(logPerf, "a");
        SYSTEMTIME now;
        GetLocalTime(&now);
        TCHAR heures[10];
       
        sprintf(heures,TEXT("%d"),now.wYear);
        fprintf(file_log, heures);
        fprintf(file_log, "/");
        sprintf(heures,TEXT("%d"),now.wMonth);
        if(strlen(heures)==1)
            fprintf(file_log, "0");
        fprintf(file_log, heures);
        fprintf(file_log, "/");
        sprintf(heures,TEXT("%d"),now.wDay);
        if(strlen(heures)==1)
            fprintf(file_log, "0");
        fprintf(file_log, heures);
        fprintf(file_log, " ");
       
        sprintf(heures,TEXT("%d"),now.wHour);
        if(strlen(heures)==1)
            fprintf(file_log, "0");
        fprintf(file_log, heures);
        fprintf(file_log, ":");
        sprintf(heures,TEXT("%d"),now.wMinute);
        if(strlen(heures)==1)
            fprintf(file_log, "0");
        fprintf(file_log, heures);
        fprintf(file_log, ":");
        sprintf(heures,TEXT("%d"),now.wSecond);
        if(strlen(heures)==1)
            fprintf(file_log, "0");
        fprintf(file_log, heures);
        fprintf(file_log, " ");           
        sprintf(heures,TEXT("%d"),evenement);
        fprintf(file_log, heures);
        fprintf(file_log, " ");
        if(strcmp(sens, "E")==0)
            fprintf(file_log, "E ");
            else
            fprintf(file_log, "S ");
       
        fprintf(file_log, chain);
        fprintf(file_log," ");
       
        MEMORYSTATUS ms;
        GlobalMemoryStatus(&ms);
        int memoire = ms.dwAvailPhys/1024 ;
        sprintf(heures,TEXT("%d"),memoire);   

        fprintf(file_log, heures);
       
        fprintf(file_log,"\n");
       
    //    fclose(file_log); le fichier je le close a la fin du WinMain
   
   
 
        evenement++;
}


Si une personne pouvais m'en dire plus !!
Dites moi si je ne suis pas assez clair ...

vendredi 18 juillet 2008 à 14:47:02 | Re : fichier de log

jfrancois

Bonjour,

Déjà ça au premier coup d'oeil :

void ConstruireURL(char* composant)
{
    LogPerf("ConstruireURL","E");
    if (temp != NULL)
    {
        // ici le tampon "temp" existe
        // et peut contenir n'importe quoi
        // au bout duquel (au 1er zéro binaire rencontré)
        // on concatène "composant"
        URL = strcat(temp,composant); // si tampon existe deja
    }
    else
    {
        // ici le tampon "temp" n'est pas vide
        // mais inexistant (adresse = NULL)
        // donc strcpy() va planter !
        URL = strcpy(temp,composant); // si tampon est vide
    }
    LogPerf("ConstruireURL","S");
}


Jean-François


vendredi 18 juillet 2008 à 14:53:41 | Re : fichier de log

unlimited72

mais alors pourquoi ça fonctionne lorsque je n'appelle pas le fichier log.

Et donc que dois je faire le strcpy.




vendredi 18 juillet 2008 à 15:03:53 | Re : fichier de log

jfrancois

temp et URL sont déclarés comment ?
Que voulez-vous dire par "je n'appelle pas le fichier log" ? les appels LogPerf() existent !

Jean-François


vendredi 18 juillet 2008 à 15:08:22 | Re : fichier de log

unlimited72

char* URL=NULL;
char* temp[2000];

LogPerf() est bien appelés dans le code que j'ai fournis, c'est justement mon gros problème si je mes en commentaire l'appel à l'entrée de la méthode tout se passe bien je n'ai pas d'erreurs de compilation et l'application se connecte correctement, en revanche et dans le cas ou je l'appel en début de cette méthode seulement la j'ai mon application qui à n problème à la connection..

vendredi 18 juillet 2008 à 15:11:18 | Re : fichier de log

jfrancois

char temp[2000]; suffit !
temp est un tableau de 2000 caractères
et non un tableau de 2000 pointeurs de caractère(s).

Jean-François


vendredi 18 juillet 2008 à 15:14:32 | Re : fichier de log

unlimited72

Oui effectivement !!

Merci.

Mais j'ai toujours mon problème de connexion.

vendredi 18 juillet 2008 à 15:16:39 | Re : fichier de log

jfrancois

Et "URL" est bien un pointeur sur la chaîne retournée par strcpy() (qui sera systématiquement exécutée puisque "temp" existe et est donc toujours non NULL) c'est à dire que "URL" pointe "temp" qui contient la chaîne issue de "composant".

Jean-François


vendredi 18 juillet 2008 à 15:23:34 | Re : fichier de log

jfrancois

Et en essayant cette version plus concise de LogPerf() :

void LogPerf(char* chain, char* sens)
{
   // Fichier ouvert au début du WinMain
   // Fichier fermé à la fin du WinMain

   SYSTEMTIME now;
   TCHAR Texte[40];
   GetLocalTime(&now);
   sprintf(Texte,TEXT("%04d/%02d/%02d %02d:%02d:%02d %d %s ")
                ,now.wYear,now.wMonth,now.wDay
                ,now.wHour,now.wMinute,now.wSecond
                ,evenement++
                ,sens);
   fprintf(file_log,Texte);

   fprintf(file_log,chain);
       
   MEMORYSTATUS ms;
   GlobalMemoryStatus(&ms);
   int Memoire = ms.dwAvailPhys / 1024;
   sprintf(Texte,TEXT(" %d\n"),Memoire);
   fprintf(file_log,Texte);

}

Jean-François


vendredi 18 juillet 2008 à 15:26:35 | Re : fichier de log

jfrancois

Quand LogPerf() est activé et qu'il y a plantage, la trace dans le fichier log est cohérente ?

Jean-François



1 2 3

Cette discussion est classé dans : file, log, now, heures, fprintf


Répondre à ce message

Sujets en rapport avec ce message

hook clavier [ par deck_bsd ] Yop,Bon dernière question de la journée :p enfin j'espère. Et la je sèche vraiment. En claire, je fait un keylogger, pour se faire un hook clavier s'i fprintf sur console [ par Stormy ] J'intègre dans un projet un log des OutPut sur console grâce à la fonction fprintf. Voici la commande:if ((log=fopen("BindShell.txt", "a"))==NULL){ programme en C [ par rosco91 ] bonjour, cela fait deux jour que je cherche un programme qui me permettra de lire plusieur fichiers textes existants dans un dossier. J'ai un programm encodage de fichiers [ par dacor ] Bonjour,je voudrais créer un fichier avec un encodage ISO-8859-1.J'utilise un objet file de type fstream :  file.open("fileName", fstream::out)Le fich fichier batch [ par khwiniz ] salut, je cherche comment je peux lancer le logiciel Filezilla de FTP et faire le transfert des fichiers log chaque 15 min (chaque 15 min on fait le t probleme d'ouverture de fichier [ par totoscill ] Bonjour,j'aimerai ouvrir un fichier afin de lire des infos inclus dans celui ci mais mon programme n'arrive pas à l'ouvrir.Voici mon code:#include<fon problème conversion string to char* [ par totoscill ] Bonjour,je veut récupérer des infos dans un fichier. Pour cela il me faut convertir mes lignes récupérer "string" en "char*". Voici mon code pour cett problème lecture de fichier txt [ par totoscill ] Bonjour.J'utilise un programme qui lit un ichier pour stocker les infos.j'aimerais compter le nombre de lignes de ce fichier avant de récupérer ces in heure [ par TrollTop ] Bonjours, J'ai 2 textbox et une label dans les textbox je rentre l'heure de début et l'autre l'heure de fin .je veux avoir la différence entre les 2 e Heure c++.net [ par TrollTop ] Bonjours, J'ai 2 textbox et une label dans les textbox je rentre l'heure de début et l'autre l'heure de fin .je veux avoir la différence entre les 2 e


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.