A Naplók írása

Tartalomjegyzék:

A Naplók írása
A Naplók írása

Videó: A Naplók írása

Videó: A Naplók írása
Videó: Barbie™Naplók | Teljes Mese 💖 | Barbie90s 2024, November
Anonim

Ma a legtöbb alkalmazás és rendszeralkalmazás időszakonként információkat tárol a munkájuk folyamatáról, a hibákról és a hibákról a speciális naplókban. A legtöbb általános célú operációs rendszer olyan szolgáltatásokat nyújt, amelyek lehetővé teszik a naplók írását egy szabványos programozási felület segítségével.

A naplók írása
A naplók írása

Szükséges

  • - C fordító;
  • - Windows Platform SDK;
  • - Csomag fejlesztése a glibc számára.

Utasítás

1. lépés

Adjon hozzá támogatást a naplók írásához a rendszernaplóba az alkalmazásból, amelyet úgy terveztek, hogy a Windows család operációs rendszerei alatt működjön.

A RegisterEventSource API függvény használatával regisztrálja az alkalmazást eseményforrásként, a ReportEvent függvényt a bejegyzés hozzáadásához a naplóba, a DeregisterEventSource függvényt pedig a RegisterEventSource által visszaadott fogantyú bezárásához.

Van értelme meghívni a RegisterEventSource-t az alkalmazás inicializálása során, és folyamatosan menteni a visszaküldött leírót, hogy a naplóbejegyzéseket a program különböző helyeiről lehessen elhelyezni. A Windows naplóba írás legegyszerűbb példája így nézhet ki:

HANDLE hLog = RegisterEventSource (NULL, "MyApplicationName");

ha (hLog! = NULL)

{

if (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Üzenet szövege / 0", NULL))

{

// esemény sikeresen naplózva

}

DeregisterEventSource (hLog);

}

A ReportEvent függvény szemantikájáról további részletek az MSDN-ben találhatók: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Ezenkívül adnia kell néhány adatot az alkalmazás futtatható moduljáról a rendszerleíró adatbázisban, és hozzá kell adnia egy adott formátumú erőforrásokat magához a modulhoz vagy egy külső dinamikus könyvtárhoz. Az eseménynapló szolgáltatás regisztrációs kulcsairól további információt a https://msdn.microsoft.com/en-us/library/windows/desktop/aa363661%28v=vs.85%29.aspx webhelyen talál.

2. lépés

A Linux-kompatibilis operációs rendszereken történő bejelentkezés általában a syslog démon segítségével történhet. Ez a szolgáltatás egy alkalmazásszintű interfésszel rendelkezik, függvénykészlet formájában, amelynek deklarációi a syslog.h fejlécfájlba kerülnek.

Az openlog funkció segítségével kapcsolatot hozhat létre a syslog szolgáltatással egy alkalmazásból vagy könyvtárból. Hívja meg a syslog vagy vsyslog függvényeket, ha üzeneteket szeretne a naplóba tenni. Az események rögzítésének befejezése után, vagy amikor az alkalmazás kilép, zárja a kapcsolatot a szolgáltatással a closelog funkció meghívásával. Ezenkívül a setlogmask függvény segítségével konfigurálhatja a beállításokat, hogy figyelmen kívül hagyja azokat a hívásokat, amelyek eseményrekordokat adnak meg egy adott prioritással. Az üzenetek naplóba írásának példája így nézhet ki:

openlog ("MyApplication", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

syslog (LOG_NOTICE, "A MyApplication elindul% PID azonosítóval", getuid ());

syslog (LOG_INFO, "Információs üzenet!");

closelog ();

A syslog API függvényeinek paramétereiről további információt a libc információ dokumentációjában talál.

3. lépés

Írjon naplókat tetszőleges fájlokba az eseménymegmaradás alrendszer saját megvalósításával. Az egyik legegyszerűbb megoldás erre a problémára az, hogy több függvényt hoz létre a globális hatókörben, amelyek közül az egyik megnyit egy meghatározott nevű fájlt az információ hozzáadása módban, a másik bezárja, a harmadik pedig hozzáad egy üzenetet, paraméter a fájlhoz. Fogalmilag ez a megoldás hasonlít a syslog programozási felületre a Linuxban.

A fájl megnyitásához és bezárásához használja a C szabványos könyvtár fopen és fclose függvényeit. Hívja az fwrite parancsot információk hozzáadásához a fájlhoz. Használhat platformspecifikus funkciókat (például a CreateFile Windows alatt) és a használt keretrendszer objektumainak olyan módszereit is, amelyek a fájlokkal való munka funkcionalitását foglalják magukban.

Ajánlott: