Ett av de viktigaste sätten att diagnostisera funktionsstörningar i programvaran som redan körs på användarens dator är att hålla händelseloggar - loggar. Vanligtvis spelar de in information om lanseringarna, liksom viktig information om processens tillstånd och systemmiljön i händelse av ett kritiskt fel. Du kan skapa loggar både på egen hand och med hjälp av specialtjänster för operativsystem.
Det är nödvändigt
- - översättare från det använda programmeringsspråket;
- - möjligen en Windows Platform SDK;
- - möjligen ett utvecklingspaket för glibc.
Instruktioner
Steg 1
Analysera användarvillkoren och gör upp kraven för det utvecklade delsystemet, komponenten eller biblioteket som skapar loggar. Svara på frågorna om vilken plattform eller vilka plattformar den ska fungera under, vad dess API kommer att vara.
Steg 2
I enlighet med de identifierade funktionsfunktionerna och det tillhandahållna API: et, skapa en mall för loggningssubsystemet. Börja implementera dess funktionalitet.
Steg 3
Det enklaste alternativet för loggning är att självständigt skapa filer på en plats som bestäms av applikationskonfigurationen och sedan skriva data i valfritt format till dem. Använd C-standardbiblioteksfunktioner (fopen, fclose, fwrite), C ++ standardbibliotekströmobjekt (ofstream), använda ramklasser (som CFile, QFile) eller operativsystems API-funktioner (CreateFile, WriteFile på Windows).
Steg 4
Implementera loggning med syslog API på UNIX-kompatibla operativsystem. Syslog API-funktionerna deklareras i syslog.h-rubrikfilen. Anslut den på rätt plats i källkoden för ditt projekt.
Steg 5
Anslut till syslog-tjänsten med hjälp av openlog-funktionssamtalet. Som parametrar skickar du en pekare till en sträng som innehåller identifieraren för applikationen eller komponenten som kommer att skriva, alternativflaggor och en mask av händelser som ska skickas till loggen. Använd samtal till syslog- och vsyslog-funktionerna för att lägga till poster i loggen. Ring stängningsfunktionen för att koppla från tjänsten. Ett enkelt exempel på syslog-kod kan vara: openlog ("prefix", LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1); syslog (LOG_INFO, "% s", "Info"); syslog (LOG_NOTICE, "% s", "Notice"); closelog (); Det är vettigt att ansluta till syslog när du initialiserar applikationen och koppla bort när du stänger av den.
Steg 6
På Windows-operativsystem använder du EventLog API för att lägga till poster i systemloggarna. Ring RegisterEventSource för att få loggbeskrivaren på den angivna maskinen. Använd det här handtaget när du anropar funktionen ReportEvent som skriver till loggen. När du är klar, ring DeregisterEventSource för att stänga anslutningen och släpp de resurser som tilldelats av RegisterEventSource. Det enklaste exemplet på att arbeta med EventLog kan vara: 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 är det vettigt att ringa RegisterEventSource vid start och DeregisterEventSource vid avstängning av applikation.