Kako Pisati Zapisnike

Sadržaj:

Kako Pisati Zapisnike
Kako Pisati Zapisnike

Video: Kako Pisati Zapisnike

Video: Kako Pisati Zapisnike
Video: Как поймать перо Жар-Птицы (мультфильм) 2024, Svibanj
Anonim

Danas većina aplikacija i sistemskih aplikacija povremeno sprema informacije o procesu svog rada, pogreškama i kvarovima u posebne zapisnike koji se nazivaju zapisnici. Većina operativnih sustava opće namjene pruža usluge koje omogućuju pisanje dnevnika pomoću standardnog programskog sučelja.

Kako pisati zapisnike
Kako pisati zapisnike

Potrebno

  • - C kompajler;
  • - SDK za platformu Windows;
  • - Razviti paket za glibc.

Upute

Korak 1

Dodajte podršku za pisanje dnevnika u sistemski zapisnik iz vaše aplikacije dizajnirane za rad u operativnim sustavima iz obitelji Windows.

Koristite funkciju RegisterEventSource API za registraciju aplikacije kao izvora događaja, funkciju ReportEvent za dodavanje unosa u zapisnik i funkciju DeregisterEventSource za zatvaranje ručke koju vraća RegisterEventSource.

Ima smisla nazvati RegisterEventSource tijekom inicijalizacije aplikacije i cijelo vrijeme spremati vraćeni deskriptor, tako da se unosi u dnevnik mogu postavljati s različitih mjesta u programu. Najjednostavniji primjer pisanja u Windowsov zapisnik može izgledati ovako:

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

ako (hLog! = NULL)

{

if (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Tekst poruke / 0", NULL))

{

// događaj je uspješno zabilježen

}

DeregisterEventSource (hLog);

}

Više pojedinosti o semantici funkcije ReportEvent nalazi se u MSDN-u na https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Osim toga, u sistemski registar morate staviti neke podatke o izvršnom modulu aplikacije i dodati resurse u određenom formatu samom modulu ili dinamičkoj knjižnici treće strane. Za više informacija o ključevima registra za uslugu evidencije događaja pogledajte

Korak 2

Prijava na operativni sustav kompatibilan s Linuxom obično se može izvršiti pomoću syslog demona. Ova usluga ima sučelje na razini aplikacije u obliku skupa funkcija, čije su deklaracije smještene u datoteku zaglavlja syslog.h.

Upotrijebite funkciju openlog za stvaranje veze s uslugom syslog iz aplikacije ili knjižnice. Pozovite syslog ili vsyslog funkcije da stavite poruke u zapisnik. Nakon završetka snimanja događaja ili kada aplikacija izlazi, zatvorite vezu s uslugom pozivanjem funkcije zatvaranja dnevnika. Osim toga, možete konfigurirati postavke tako da ignoriraju pozive koji dodaju zapise događaja s određenim prioritetom pomoću funkcije setlogmask. Primjer pisanja poruka u zapisnik mogao bi izgledati ovako:

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

syslog (LOG_NOTICE, "MyApplication je pokrenut s PID% d", getuid ());

syslog (LOG_INFO, "Informativna poruka!");

closelog ();

Za više informacija o parametrima funkcija API-ja syslog, pogledajte libc info dokumentaciju.

3. korak

Napišite zapisnike u proizvoljne datoteke koristeći vlastitu implementaciju podsustava trajanja događaja. Jedno od najjednostavnijih rješenja ovog problema je stvaranje nekoliko funkcija u globalnom opsegu, od kojih jedna otvara datoteku s određenim imenom u načinu dodavanja podataka, druga je zatvara, a treća dodaje niz poruka koji joj se prosljeđuje kao parametar za ovu datoteku. Konceptualno, ovo rješenje sliči programskom sučelju syslog-a u Linuxu.

Upotrijebite funkcije fopen i fclose u standardnoj knjižnici C za otvaranje i zatvaranje datoteke. Nazovite fwrite da biste dodali podatke u datoteku. Također možete koristiti funkcije specifične za platformu (na primjer, CreateFile u sustavu Windows) i metode objekata korištenih okvira koji obuhvaćaju funkcionalnost rada s datotekama.

Preporučeni: