Kako Pisati Dnevnike

Sadržaj:

Kako Pisati Dnevnike
Kako Pisati Dnevnike

Video: Kako Pisati Dnevnike

Video: Kako Pisati Dnevnike
Video: Первая страничка для Личного Дневника! Идеи для ЛД Часть 43 2024, Maj
Anonim

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

Kako pisati dnevnike
Kako pisati dnevnike

Potrebno

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

Instrukcije

Korak 1

Dodajte podršku za pisanje dnevnika u sistemski dnevnik iz vaše aplikacije dizajnirane za rad pod operativnim sistemima porodice Windows.

Koristite funkciju RegisterEventSource API za registraciju aplikacije kao izvora događaja, funkciju ReportEvent za dodavanje unosa u dnevnik 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 Windows dnevnik može izgledati ovako:

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

if (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 detalja o semantici funkcije ReportEvent možete pronaći u MSDN-u na https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Pored toga, u sistemski registar morate staviti neke podatke o izvršnom modulu aplikacije i dodati resurse u određenom formatu samom modulu ili nezavisnoj dinamičkoj knjižnici. Za više informacija o ključevima registra za uslugu evidencije događaja pogledajte

Korak 2

Prijavljivanje na operativne sisteme kompatibilne 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.

Koristite funkciju openlog za stvaranje veze sa uslugom syslog iz aplikacije ili biblioteke. Pozovite syslog ili vsyslog funkcije da stavite poruke u dnevnik. Nakon završetka događaja snimanja ili kada aplikacija izlazi, zatvorite vezu sa uslugom pozivanjem funkcije zatvaranja dnevnika. Pored toga, možete konfigurirati postavke da ignoriraju pozive koji dodaju zapise događaja s određenim prioritetom pomoću funkcije setlogmask. Primjer pisanja poruka u dnevnik može 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.

Korak 3

Napišite zapisnike u proizvoljne datoteke koristeći vlastitu implementaciju podsistema 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 informacija, druga je zatvara, a treća dodaje niz poruka koja joj se prosljeđuje kao parametar za ovu datoteku. Konceptualno, ovo rješenje podsjeća na syslog programsko sučelje u Linuxu.

Koristite funkcije fopen i fclose u standardnoj biblioteci C za otvaranje i zatvaranje datoteke. Nazovite fwrite da biste dodali informacije 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čuje se: