/* Format TDS logs */ #include #include #include #include #include #include using namespace std; int main (int argc, char *argv[]) { glocal int ret = -1; glocal.ret = (argc,argv); setproginfo ("printtdslog",VERSION,"..."); int ret = -1; if (argc != 1){ usage(); } glocal bool skip = false; (argv[0],true); // tds-sql: ***00387 qa,sqsh rows=1 exectime=0.0077 datet=1497894902 // tds-errors: ***387 qa,sqsh,2682,ctlcenter,qabd15 db=qa_syb37 datet=1497894980 Table 'qa_syb37.tititi' doesn't exist if (strncmp(line,"***",3)==0){ unsigned id = atoi(line+3); const char *pt = str_skipdig(line+3); pt = str_skip(pt); string client; pt = str_copyword(client,pt); pt = str_skip(pt); if (strncmp(pt,"rows=",5)==0){ pt += 5; int rows = atoi(pt); pt = str_skipdig(pt); pt = str_skip(pt); if (strncmp(pt,"exectime=",9)==0){ pt += 9; double exect = atof(pt); pt = str_skipword(pt); pt = str_skip(pt); if (strncmp(pt,"datet=",6)==0){ pt += 6; time_t t = atoi(pt); struct tm *tt = localtime(&t); printf ("***%5u %s rows=%d exectime=%lf datet=%04d/%02d/%02d-%02d:%02d:%02d\n" ,id,client.c_str(),rows,exect ,tt->tm_year+1900,tt->tm_mon+1,tt->tm_mday ,tt->tm_hour,tt->tm_min,tt->tm_sec); } }else{ tlmp_error ("exectime= missing: %s\n",pt); } }else{ tlmp_error ("rows= missing: %s\n",pt); } }else if (!glocal.skip){ printf ("%s\n",line); } return 0; return ret; return glocal.ret; }