Yksi tärkeimmistä tavoista diagnosoida käyttäjän tietokoneessa jo käynnissä olevan ohjelmiston toimintahäiriöitä on pitää tapahtumalokeja - lokeja. Tyypillisesti he tallentavat tietoja käynnistämisestä sekä tärkeitä tietoja prosessin tilasta ja järjestelmäympäristöstä kriittisen vian sattuessa. Voit luoda lokeja sekä omalla tavallasi että käyttöjärjestelmien erikoispalveluilla.

Se on välttämätöntä
- - kääntäjä käytetystä ohjelmointikielestä;
- - mahdollisesti Windows Platform SDK;
- - mahdollisesti glibc-kehityspaketti.
Ohjeet
Vaihe 1
Analysoi käyttöehdot ja täytä vaatimukset kehitetylle osajärjestelmälle, komponentille tai kirjastolle, joka tekee lokeja. Vastaa kysymyksiin siitä, millä alustalla tai alustoilla sen tulisi toimia, mikä on sen sovellusliittymä.
Vaihe 2
Luo tunnistettujen toimivien ominaisuuksien ja toimitetun sovellusliittymän mukaisesti malli lokiyksikölle. Aloita sen toiminnallisuuden toteuttaminen.
Vaihe 3
Yksinkertaisin tapa kirjautua on luoda tiedostot itsenäisesti sovelluskokoonpanon määrittelemään paikkaan ja kirjoittaa sitten tietoja missä tahansa muodossa. Käytä C-vakiokirjastofunktioita (fopen, fclose, fwrite), C ++ -kirjastovirran standardikohteita (ofstream), käytettyjä kehysluokkia (kuten CFile, QFile) tai käyttöjärjestelmän API-toimintoja (CreateFile, WriteFile Windowsissa).
Vaihe 4
Ota lokikirjaus käyttöön syslog-sovellusliittymän avulla UNIX-yhteensopivissa käyttöjärjestelmissä. Syslog-sovellusliittymän toiminnot ilmoitetaan syslog.h-otsikkotiedostossa. Liitä se oikeaan paikkaan projektisi lähdekoodissa.
Vaihe 5
Muodosta yhteys syslog-palveluun käyttämällä openlog-toimintopyyntöä. Parametreina välitä se osoittimelle merkkijonolle, joka sisältää kirjoitettavan sovelluksen tai komponentin tunnisteen, vaihtoehtoliput ja lokiin välitettävän tapahtuman maskin. Lisää merkintöjä lokiin käyttämällä syslog- ja vsyslog-toimintojen kutsuja. Soita closelog-toiminnolle katkaistaksesi yhteyden palveluun. Yksinkertainen esimerkki syslog-koodista voi olla: openlog ("etuliite", LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1); syslog (LOG_INFO, "% s", "Info"); syslog (LOG_NOTICE, "% s", "Ilmoitus"); closelog (); On järkevää muodostaa yhteys syslogiin sovellusta käynnistettäessä ja katkaista yhteys sammutettaessa.
Vaihe 6
Lisää Windows-käyttöjärjestelmissä Tapahtumalog-sovellusliittymän avulla merkinnät järjestelmälokiin. Soita RegisterEventSource saadaksesi lokikuvaajan määritetylle koneelle. Käytä tätä kahvaa soittaessasi ReportEvent-toimintoon, joka kirjoittaa lokiin. Kun olet valmis, soita DeregisterEventSource-yhteys sulkemaan yhteys ja vapauttamaan RegisterEventSourcen varaamat resurssit. Yksinkertaisin esimerkki EventLogin kanssa työskentelystä voi olla: HANDLE h =:: RegisterEventSource (NULL, "AnySource"); ASSERT (h! = NULL);:: ReportEvent (h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 3, 0, "Text1Text2Text3", NULL);:: DeregisterEventSource (h); Kuten syslogissa, on järkevää kutsua RegisterEventSource alussa ja DeregisterEventSource sovelluksen sammutuksen yhteydessä.