A felhasználói számítógépen már futó szoftverek működésében fellépő üzemzavarok diagnosztizálásának egyik fő módja az eseménynaplók - naplók vezetése. Jellemzően információkat tárolnak az indításokról, valamint fontos információkat a folyamat állapotáról és a rendszer környezetéről kritikus hiba esetén. Naplókat létrehozhat mind saját eszközeivel, mind az operációs rendszerek speciális szolgáltatásainak felhasználásával.
Szükséges
- - fordító a használt programozási nyelvről;
- - esetleg Windows Platform SDK;
- - esetleg egy fejlesztési csomag a glibc számára.
Utasítás
1. lépés
Elemezze a felhasználási feltételeket, és állítsa össze a naplót készítő fejlett alrendszer, összetevő vagy könyvtár követelményeit. Válaszoljon arra a kérdésre, hogy mely platformon vagy platformokon kell működnie, mi lesz az API-ja.
2. lépés
Az azonosított működési jellemzőknek és a megadott API-nak megfelelően hozzon létre egy sablont a naplózási alrendszerhez. Kezdje el megvalósítani a funkcionalitását.
3. lépés
A naplózás legegyszerűbb lehetősége, ha önállóan hoz létre fájlokat az alkalmazás konfigurációja által meghatározott helyre, majd bármilyen formátumban adatokat ír nekik. Használjon C szabványos könyvtárfunkciókat (fopen, fclose, fwrite), C ++ szabványos könyvtárfolyam-objektumokat (ofstream), használt keretrendszer-osztályokat (például CFile, QFile) vagy operációs rendszer API-függvényeket (CreateFile, WriteFile Windows rendszeren).
4. lépés
Végezze el a naplózást a syslog API segítségével UNIX-kompatibilis operációs rendszereken. A syslog API függvények a syslog.h fejlécfájlban vannak deklarálva. Csatlakoztassa a megfelelő helyre a projekt forráskódjában.
5. lépés
Csatlakozzon a syslog szolgáltatáshoz az openlog funkció hívásával. Paraméterekként adjon át egy mutatót egy karakterláncnak, amely tartalmazza az írni kívánt alkalmazás vagy összetevő azonosítóját, opciójelzőket és a naplóba továbbítandó események maszkját. A syslog és a vsyslog függvények hívásaival bejegyzéseket vehet fel a naplóba. Hívja meg a closelog funkciót, hogy leváljon a szolgáltatásról. A syslog kód egyszerű példája lehet: openlog ("előtag", LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1); syslog (LOG_INFO, "% s", "Info"); syslog (LOG_NOTICE, "% s", "Értesítés")); closelog (); Az alkalmazás indításakor van értelme csatlakozni a sysloghoz, és leállításkor meg kell bontani.
6. lépés
Windows operációs rendszereken az EventLog API segítségével tegyen bejegyzéseket a rendszernaplókba. Hívja meg a RegisterEventSource szoftvert, hogy a naplóleíró a megadott gépre kerüljön. Használja ezt a fogantyút a naplóba író ReportEvent függvény meghívásakor. Ha elkészült, hívja a DeregisterEventSource alkalmazást a kapcsolat bezárásához és a RegisterEventSource által kiosztott erőforrások felszabadításához. A EventLog használatának legegyszerűbb példája a következő lehet: HANDLE h =:: RegisterEventSource (NULL, "AnySource"); ASSERT (h! = NULL);:: ReportEvent (h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 3, 0, "Text1Text2Text3", NULL);:: DeregisterEventSource (h); A sysloghoz hasonlóan van értelme meghívni a RegisterEventSource indításkor és a DeregisterEventSource az alkalmazás leállításakor.