Een van die belangrikste maniere om wanfunksies by die werking van sagteware wat reeds op die rekenaar van die gebruiker werk, te diagnoseer, is om logboeke te hou - logs. Hulle teken gewoonlik inligting oor die bekendstellings aan, asook belangrike inligting oor die stand van die proses en die stelselomgewing in geval van 'n kritieke mislukking. U kan logboeke op u eie manier opstel en met behulp van spesiale dienste van bedryfstelsels.
Dit is nodig
- - vertaler uit die gebruikte programmeertaal;
- - moontlik 'n Windows Platform SDK;
- - moontlik 'n ontwikkelingspakket vir glibc.
Instruksies
Stap 1
Analiseer die gebruiksvoorwaardes en stel die vereistes op vir die ontwikkelde substelsel, komponent of biblioteek wat logboeke sal maak. Beantwoord die vrae oor watter platform of platforms dit moet bedryf, wat die API daarvan sal wees.
Stap 2
In ooreenstemming met die geïdentifiseerde funksioneringsfunksies en die verskafde API, skep u 'n sjabloon vir die logsubstelsel. Begin om die funksies daarvan te implementeer.
Stap 3
Die eenvoudigste opsie om aan te meld, is om lêers onafhanklik te skep op 'n plek wat deur die toepassingskonfigurasie bepaal word en dan data in enige formaat daarvoor te skryf. Gebruik C-standaardbiblioteekfunksies (fopen, fclose, fwrite), C ++ standaardbiblioteekstroomvoorwerpe (ofstream), gebruikte raamwerkklasse (soos CFile, QFile) of API-funksies van die bedryfstelsel (CreateFile, WriteFile op Windows).
Stap 4
Implementeer logging met die syslog API op UNIX-versoenbare bedryfstelsels. Die syslog API-funksies word in die syslog.h-koplêer verklaar. Verbind dit op die regte plek in die bronkode van u projek.
Stap 5
Verbind die syslog-diens met die openlog-funksie-oproep. Gee dit as parameters 'n wyser na 'n string wat die identifiseerder bevat van die toepassing of komponent wat sal skryf, opsie-vlae en 'n masker van gebeure wat na die logboek oorgedra moet word. Gebruik oproepe na die syslog- en vsyslog-funksies om inskrywings by die logboek te voeg. Bel die sluitingsfunksie om van die diens af te skakel. 'N Eenvoudige voorbeeld van syslog-kode kan wees: openlog ("prefix", LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1); syslog (LOG_INFO, "% s", "Info"); syslog (LOG_NOTICE, "% s", "Notice" closelog (); Dit is sinvol om aan syslog te koppel wanneer u die program inisieer, en ontkoppel wanneer u dit afskakel.
Stap 6
Gebruik die EventLog API op Windows-bedryfstelsels om inskrywings by die stelsellogboeke te voeg. Bel RegisterEventSource om die logboekbeskrywer op die gespesifiseerde masjien te kry. Gebruik hierdie handvatsel wanneer u die ReportEvent-funksie oproep wat na die logboek geskryf word. As u klaar is, skakel DeregisterEventSource om die verbinding te sluit en die hulpbronne wat deur RegisterEventSource toegeken is, vry te stel. Die eenvoudigste voorbeeld van die werk met EventLog kan wees: HANDLE h =:: RegisterEventSource (NULL, "AnySource"); ASSERT (h! = NULL);:: ReportEvent (h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 3, 0, "Text1Text2Text3", NULL);:: DeregisterEventSource (h); Soos met syslog, is dit logies om RegisterEventSource te skakel by begin en DeregisterEventSource tydens die afsluiting van die aansoek.