Gadget d'analyse du journal du projet

Extraire rapidement les informations clés dans le journal

Après un problème dans le projet, vous devez analyser si les paramètres sont corrects dans le journal. Le fichier journal est souvent très volumineux et les informations de journal de chaque module sont mélangées. Vous devez trouver les informations clés dont vous avez besoin un peu. En tant que singe, bien sûr Profitant de mon travail, j'ai écrit un programme C qui analyse les logs. Bien sûr, c'est très simple. Je viens d'écrire une version démon. Il faut faire de cette idée une application capable de spécifier dynamiquement des paramètres et d'analyser dynamiquement des logs ...

#include<stdio.h>
#include<string.h>

int main(int argc,char *argv[])
{
    FILE *fpold = NULL;
    FILE *fpnew = NULL;
    char buf[500];
    size_t ret;
    char *pret = NULL;
    int i = 0,count = 0;
    int nret ;
    int goon = 0;

    fpold = fopen(argv[1],"r");
    if(NULL == fpold)
    {
        printf("open %s fail,please check it!\n",argv[1]);
        return -1;
    }
    fpnew = fopen("./new.log","w+");
    if(NULL == fpnew)
    {
        printf("create new log file fail!\n");
        return -1;
    }
    memset(buf,0,sizeof(buf));

    while((pret = fgets(buf,500,fpold)) != NULL)
    {
        //    printf("%d\n",strlen(buf));
            for(i = 0; i < strlen(buf);i++)
            {
                if(buf[i] == '&')
                {
                    count++;
                    if(count == 11)
                    {
                        if(0 == goon)
                        {
                            goon = 1;
                            continue;
                        }
                    }
                    else
                    {
                        goon = 0;
                    }
                }
                else
                {
                 //   printf("%d\n",count);
                    if(count == 11)
                    {
                        nret = fputs(buf,fpnew); 
                        if(nret == 0)
                        {
                            printf("write new file fail\n");
                            return -1;
                        }
                        goon = 0;
                        count = 0;
                        break;
                    }
                    count = 0;
                }
            }
         //   printf("%s\n",buf);
    }
    printf("file read end!\n");
    
    fclose(fpold);
    fclose(fpnew);

    return 0;
}
Publié 53 articles originaux · loué 16 · visites 2213

Je suppose que tu aimes

Origine blog.csdn.net/m0_37757533/article/details/105490598
conseillé
Classement