En af de vigtigste måder til at diagnosticere funktionsfejl i driften af software, der allerede kører på brugerens computer, er at føre hændelseslogfiler - logfiler. Typisk registrerer de oplysninger om lanceringerne samt vigtige oplysninger om status for processen og systemmiljøet i tilfælde af en kritisk fejl. Du kan oprette logfiler både på din egen måde og ved hjælp af specielle tjenester til operativsystemer.
Er det nødvendigt
- - oversætter fra det anvendte programmeringssprog
- - muligvis en Windows Platform SDK;
- - muligvis en udviklingspakke til glibc.
Instruktioner
Trin 1
Analyser brugsvilkårene og sammensæt kravene til det udviklede delsystem, komponent eller bibliotek, der opretter logfiler. Besvar spørgsmålene om, hvilken platform eller platforme den skal fungere under, hvad dens API vil være.
Trin 2
I overensstemmelse med de identificerede funktionsfunktioner og den medfølgende API skal du oprette en skabelon til logningssubsystemet. Begynd at implementere dens funktionalitet.
Trin 3
Den enkleste mulighed for logning er uafhængigt at oprette filer på et sted bestemt af applikationskonfigurationen og derefter skrive data i ethvert format til dem. Brug C-standardbiblioteksfunktioner (fopen, fclose, fwrite), C ++ standardbiblioteksstrømobjekter (ofstream), brugte rammeklasser (såsom CFile, QFile) eller API-funktioner til operativsystem (CreateFile, WriteFile på Windows).
Trin 4
Implementere logning ved hjælp af syslog API på UNIX-kompatible operativsystemer. Syslog API-funktionerne er deklareret i syslog.h-headerfilen. Forbind det på det rigtige sted i kildekoden til dit projekt.
Trin 5
Opret forbindelse til syslog-tjenesten ved hjælp af openlog-funktionskaldet. Send det som en parameter til en streng, der indeholder identifikatoren for applikationen eller komponenten, der vil skrive, valgflag og en maske af begivenheder, der skal sendes til loggen. Brug opkald til syslog- og vsyslog-funktionerne for at tilføje poster til loggen. Ring til closelog-funktionen for at afbryde forbindelsen til tjenesten. Et simpelt eksempel på syslog-kode kan være: openlog ("prefix", LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1); syslog (LOG_INFO, "% s", "Info"); syslog (LOG_NOTICE, "% s", "Notice"); closelog (); Det giver mening at oprette forbindelse til syslog, når applikationen initialiseres, og afbryde forbindelsen, når den lukkes ned.
Trin 6
På Windows-operativsystemer skal du bruge EventLog API til at tilføje poster til systemlogfiler. Ring til RegisterEventSource for at hente logbeskrivelsen på den angivne maskine. Brug dette håndtag, når du ringer til ReportEvent-funktionen, der skriver til loggen. Når du er færdig, skal du ringe til DeregisterEventSource for at lukke forbindelsen og frigive de ressourcer, der er tildelt af RegisterEventSource. Det enkleste eksempel på at arbejde med EventLog kan være: HANDLE h =:: RegisterEventSource (NULL, "AnySource"); ASSERT (h! = NULL);:: ReportEvent (h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 3, 0, "Text1Text2Text3", NULL);:: DeregisterEventSource (h); Som med syslog er det fornuftigt at ringe til RegisterEventSource ved start og DeregisterEventSource ved nedlukning af applikation.