Kuidas Logisid Kirjutada

Sisukord:

Kuidas Logisid Kirjutada
Kuidas Logisid Kirjutada

Video: Kuidas Logisid Kirjutada

Video: Kuidas Logisid Kirjutada
Video: Kuidas saada TikTokis KUULSAKS! 2024, Detsember
Anonim

Tänapäeval salvestab enamik rakendus- ja süsteemirakendusi perioodiliselt teavet oma tööprotsessi, vigade ja rikete kohta spetsiaalsetes logides, mida nimetatakse logideks. Enamik üldotstarbelisi operatsioonisüsteeme pakuvad teenuseid, mis võimaldavad logisid kirjutada tavalise programmeerimisliidese abil.

Kuidas logisid kirjutada
Kuidas logisid kirjutada

Vajalik

  • - C koostaja;
  • - Windowsi platvormi SDK;
  • - Arendage pakett glibc jaoks.

Juhised

Samm 1

Lisage Windowsi pere operatsioonisüsteemides töötamiseks loodud rakendusest süsteemilogi tugi logide kirjutamiseks.

Funktsiooni RegisterEventSource API abil saate rakenduse registreerida sündmuse allikana, funktsiooni ReportEvent logisse kande lisamiseks ja funktsiooni DeregisterEventSource, et sulgeda RegisterEventSource'i tagastatud käepide.

Rakenduse initsialiseerimise ajal on mõttekas helistada RegisterEventSource'ile ja kogu aeg tagastatud deskriptor salvestada, nii et logi kirjed saab paigutada programmi erinevatest kohtadest. Kõige lihtsam näide Windowsi logisse kirjutamisest võib välja näha järgmine:

HANDLE hLog = RegisterEventSource (NULL, "Minu rakenduse nimi");

kui (hLog! = NULL)

{

if (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Sõnumi tekst / 0", NULL))

{

// sündmus logiti edukalt

}

DeregisterEventSource (hLog);

}

Lisateavet funktsiooni ReportEvent semantika kohta leiate MSDN-ist aadressil https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Lisaks peate süsteemi registrisse lisama mõned andmed rakenduse käivitatava mooduli kohta ja lisama moodulis endale või kolmanda osapoole dünaamilisele teegile kindlas vormingus ressursid. Sündmuste logiteenuse registrivõtmete kohta leiate lisateavet aadressilt

2. samm

Linuxi ühilduvate operatsioonisüsteemidega saab sisse logida tavaliselt syslogide deemoniga. Sellel teenusel on rakenduste tasemel liides funktsioonide komplekti kujul, mille deklaratsioonid on paigutatud päisefaili syslog.h.

Funktsiooni openlog abil saate luua ühenduse syslogiteenusega rakendusest või teegist. Sõnumite logisse sisestamiseks helistage funktsioonile syslog või vsyslog. Pärast sündmuste salvestamise lõppu või rakenduse sulgemisel sulgege teenusega ühendus, helistades funktsiooni closelog. Lisaks saate funktsiooni setlogmask abil seadeid konfigureerida ignoreerima kõnesid, mis lisavad konkreetse prioriteediga sündmuse kirjed. Näide sõnumite logisse kirjutamisest võib välja näha järgmine:

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

syslog (LOG_NOTICE, "MyApplication käivitatakse PID-ga% d", getuid ());

syslog (LOG_INFO, "Infosõnum!");

closelog ();

Lisateavet syslog API funktsioonide parameetrite kohta leiate libc infodokumentatsioonist.

3. samm

Kirjutage logisid suvalistesse failidesse, kasutades sündmuste püsivuse alamsüsteemi enda rakendust. Üks lihtsamaid lahendusi sellele probleemile on luua globaalses ulatuses mitu funktsiooni, millest üks avab teabe lisamise režiimis konkreetse nimega faili, teine sulgeb selle ja kolmas lisab sellele edastatud sõnumistringi selle faili parameeter. Kontseptuaalselt sarnaneb see lahendus Linuxi syslogi programmeerimisliidesega.

Kasutage faili avamiseks ja sulgemiseks vastavalt C-standardteegi funktsioone fopen ja fclose. Faili teabe lisamiseks helistage fwrite. Võite kasutada ka platvormispetsiifilisi funktsioone (näiteks Windowsi all CreateFile) ja kasutatud raamistike objektide meetodeid, mis kapseldavad failidega töötamise funktsionaalsust.

Soovitan: