Een van de belangrijkste manieren om storingen te diagnosticeren in de werking van software die al op de computer van de gebruiker draait, is het bijhouden van gebeurtenislogboeken - logboeken. Meestal registreren ze informatie over de lanceringen, evenals belangrijke informatie over de status van het proces en de systeemomgeving in het geval van een kritieke storing. U kunt logboeken maken, zowel op uw eigen manier als met behulp van speciale services van besturingssystemen.
Het is nodig
- - vertaler uit de gebruikte programmeertaal;
- - eventueel een Windows Platform SDK;
- - eventueel een ontwikkelpakket voor glibc.
instructies:
Stap 1
Analyseer de gebruiksvoorwaarden en stel de vereisten op voor het ontwikkelde subsysteem, component of bibliotheek die logs zal maken. Beantwoord de vragen over onder welk platform of welke platforms het moet opereren, wat de API zal zijn.
Stap 2
Maak in overeenstemming met de geïdentificeerde functionele functies en de verstrekte API een sjabloon voor het logboeksubsysteem. Begin met het implementeren van de functionaliteit.
Stap 3
De eenvoudigste optie voor logboekregistratie is om onafhankelijk bestanden te maken op een locatie die wordt bepaald door de toepassingsconfiguratie en vervolgens gegevens in elk formaat naar hen te schrijven. Gebruik standaard bibliotheekfuncties van C (fopen, fclose, fwrite), C++ standaardbibliotheekstroomobjecten (ofstream), gebruikte framework-klassen (zoals CFile, QFile) of API-functies van het besturingssysteem (CreateFile, WriteFile op Windows).
Stap 4
Implementeer logboekregistratie met behulp van de syslog-API op UNIX-compatibele besturingssystemen. De syslog API-functies worden gedeclareerd in het headerbestand syslog.h. Sluit het op de juiste plaats aan in de broncode van uw project.
Stap 5
Maak verbinding met de syslog-service met behulp van de openlog-functieaanroep. Geef het als parameters een verwijzing naar een tekenreeks met de identifier van de toepassing of component die zal schrijven, optievlaggen en een masker van gebeurtenissen die aan het logboek moeten worden doorgegeven. Gebruik aanroepen van de functies syslog en vsyslog om vermeldingen aan het logboek toe te voegen. Roep de closelog-functie aan om de verbinding met de service te verbreken. Een eenvoudig voorbeeld van syslog-code kan zijn: openlog ("prefix", LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1); syslog (LOG_INFO, "% s", "Info"); syslog (LOG_NOTICE, "% s", " Notice "); closelog (); Het is logisch om verbinding te maken met syslog bij het initialiseren van de toepassing en de verbinding te verbreken bij het afsluiten.
Stap 6
Gebruik op Windows-besturingssystemen de EventLog-API om vermeldingen toe te voegen aan de systeemlogboeken. Roep RegisterEventSource aan om de logdescriptor op de opgegeven computer op te halen. Gebruik deze handle bij het aanroepen van de ReportEvent-functie die naar het logboek schrijft. Als u klaar bent, roept u DeregisterEventSource aan om de verbinding te sluiten en de door RegisterEventSource toegewezen resources vrij te geven. Het eenvoudigste voorbeeld van werken met EventLog is: HANDLE h =:: RegisterEventSource (NULL, "AnySource"); ASSERT (h! = NULL);:: ReportEvent (h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 3, 0, "Text1Text2Text3", NULL);:: DeregisterEventSource (h); Net als bij syslog is het logisch om RegisterEventSource aan te roepen bij het starten en DeregisterEventSource bij het afsluiten van de applicatie.