Šiandien dauguma programų ir sistemų programų periodiškai išsaugo informaciją apie savo darbo procesą, klaidas ir gedimus specialiuose žurnaluose, vadinamuose žurnaluose. Daugelis bendrosios paskirties operacinių sistemų teikia paslaugas, leidžiančias rašyti žurnalus naudojant standartinę programavimo sąsają.
Būtinas
- - C kompiliatorius;
- - „Windows Platform SDK“;
- - Sukurkite „Glibc“paketą.
Nurodymai
1 žingsnis
Pridėkite žurnalų rašymo palaikymą prie sistemos žurnalo iš savo programos, skirtos dirbti su „Windows“šeimos operacinėmis sistemomis.
Naudokite „RegisterEventSource“API funkciją, norėdami užregistruoti programą kaip įvykių šaltinį, funkciją „ReportEvent“, norėdami pridėti įrašą į žurnalą, ir funkciją „DeregisterEventSource“, kad uždarytumėte „RegisterEventSource“grąžintą rankeną.
Tikslinga inicijuoti programą iškviesti „RegisterEventSource“ir visą laiką išsaugoti grąžintą deskriptorių, kad įrašus žurnale būtų galima įdėti iš skirtingų programos vietų. Paprasčiausias rašymo į „Windows“žurnalą pavyzdys gali atrodyti taip:
HANDLE hLog = RegisterEventSource (NULL, „MyApplicationName“);
jei (hLog! = NULL)
{
jei („ReportEvent“(hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, „Pranešimo tekstas / 0“, NULL))
{
// įvykis sėkmingai užregistruotas
}
„DeregisterEventSource“(„hLog“);
}
Daugiau informacijos apie funkcijos „ReportEvent“semantiką galite rasti MSDN svetainėje https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx Be to, turite įrašyti kai kuriuos duomenis apie programos vykdomąjį modulį į sistemos registrą ir pridėti konkretaus formato išteklius į patį modulį arba trečiųjų šalių dinaminę biblioteką. Norėdami gauti daugiau informacijos apie įvykių žurnalo paslaugos registracijos raktus, žr.
2 žingsnis
Paprastai prisijungti prie operacinių sistemų, suderinamų su „Linux“, galima naudojant „syslog“deemoną. Ši paslauga turi programos lygio sąsają funkcijų rinkinio pavidalu, kurios deklaracijos dedamos į syslog.h antraštės failą.
Norėdami sukurti ryšį su „syslog“paslauga iš programos ar bibliotekos, naudokite „openlog“funkciją. Norėdami įrašyti pranešimus į žurnalą, iškvieskite syslog arba vsyslog funkcijas. Baigę įrašyti įvykius arba kai programa išjungiama, uždarykite ryšį su paslauga paskambinę į uždaro žurnalo funkciją. Be to, naudodamiesi funkcija „setlogmask“, galite sukonfigūruoti parametrus, kad nepaisytumėte skambučių, pridedančių įvykių įrašus su tam tikru prioritetu. Pranešimų rašymo į žurnalą pavyzdys gali atrodyti taip:
„openlog“(„MyApplication“, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
syslog (LOG_NOTICE, „MyApplication paleista su PID% d“, getuid ());
syslog (LOG_INFO, „Informacinis pranešimas!“);
uždaras žurnalas ();
Norėdami gauti daugiau informacijos apie syslog API funkcijų parametrus, žr. Libc informacijos dokumentaciją.
3 žingsnis
Rašykite žurnalus į savavališkus failus naudodamiesi savo įvykių patvarumo posistemio įgyvendinimu. Vienas iš paprasčiausių šios problemos sprendimų yra sukurti keletą funkcijų visuotinėje apimtyje, iš kurių viena atidaro failą su konkrečiu pavadinimu informacijos informacijos režime, antrasis uždaro jį, o trečias prideda jam perduotą pranešimo eilutę kaip šio failo parametras. Konceptualiai šis sprendimas primena „syslog“programavimo sąsają sistemoje „Linux“.
Norėdami atidaryti ir uždaryti failą, naudokite C standartinės bibliotekos „fopen“ir „fclose“funkcijas. Skambinkite „fwrite“, kad pridėtumėte informacijos prie failo. Taip pat galite naudoti konkrečioms platformoms skirtas funkcijas (pvz., „CreateFile“sistemoje „Windows“) ir naudojamų rėmų objektų metodus, apimančius darbo su failais funkcionalumą.