c logger on yksinkertainen ja tehokas lokikirjasto C-kielelle . Sen avulla voit kirjoittaa lokiviestejä tiedostoon tai konsoliin eri tarkkuudella ja ohjauksella. Tässä artikkelissa näemme, mitä ominaisuuksia C-logger tarjoaa, kuinka se asennetaan ja miten sitä käytetään C-projekteissasi.
C-loggerin ominaisuudet
c logger on kevyt kirjasto, joka sisältää vain 500 riviä lähdekoodia. Se on yhteensopiva C89-standardin kanssa ja on lankaturvallinen. Se tarjoaa kahdenlaisia kirjauksia:
- Konsolin kirjaus, joka näyttää lokiviestit vakio- tai virhetulosteessa.
- Kirjautuminen tiedostoon, joka kirjoittaa lokiviestit tekstitiedostoon automaattisella kierrolla tiedoston koon mukaan.
c loggerin avulla voit myös mukauttaa kirjaamista asetustiedostolla, jossa voit määrittää viestin muodon, tarkkuuden, lokitiedoston nimen, tiedoston enimmäiskoon jne.
Kuinka asentaa c-logger?
Asenna c-logger lataamalla lähdekoodi GitHub-arkistosta ja kääntämällä se suosikki C-kääntäjälläsi. Esimerkiksi gcc:llä:
$ git klooni https://github.com/yksz/c-logger.git $ cd c-logger $ gcc -c -o logger.o logger.c $ ar rcs libclogger.a logger.o
Tämä luo staattisen libclogger.a-arkiston, jonka voit linkittää C-ohjelmaasi. Sinun on myös sisällytettävä lähdetiedostoihisi logger.h-otsikkotiedosto.
Kuinka käyttää tukkia?
Jotta voit käyttää c loggeria, sinun on ensin alustettava kirjasto logger_init- funktiolla
ja välitettävä sille määritystiedoston nimi tai NULL, jos haluat käyttää oletusparametreja. logger-
toimintoa kirjoittaaksesi lokiviestejä, välittäen sille tunnisteen, tason ja viestin. Esimerkiksi :
#include "logger.h" int main(void) { /* Alusta kirjasto config.ini-tiedostolla */ if (logger_init("config.ini") != 0) { fprintf(stderr, "C:n alustusvirhe logger\n"); paluu 1; } /* Kirjoita INFO-tason viesti tagilla "main" */ logger("main", LOG_INFO, "Start of Program"); /* Kirjoita ERROR-tason viesti tagilla "main" */ logger("main", LOG_ERROR, "Fatal error"); /* Lopeta kirjasto */ logger_end(); paluu 0; }
Lokiviestien muoto riippuu käytetystä asetustiedostosta. Oletuksena se on muotoa:
päivämäärä-aikatunnisteen viestitaso
Esimerkiksi :
2023-06-13 02:37:16 pää INFO Ohjelman alku 2023-06-13 02:37:16 pääVIRHE Fatal error
Muotoa voidaan muokata käyttämällä seuraavia muuttujia konfiguraatiotiedostossa:
- %d: päivämäärä muodossa VVVV-KK-PP
- %t: aika HH:MM:SS-muodossa
- %c: viestitunniste
- %l: viestin taso
- %m: viesti
- %n: rivinvaihto
Jos esimerkiksi haluamme lyhyemmän muodon, voimme käyttää:
[muodot] yksinkertainen = "%t %c %l %m%n"
Millaisia yksityiskohtia on saatavilla?
c logger tarjoaa viisi yksityiskohtatasoa lokiviesteille:
- LOG_DEBUG: virheenkorjausviesteille, hyödyllinen kehittäjille.
- LOG_INFO: informatiivisille viesteille, hyödyllinen käyttäjille.
- LOG_WARN: varoitusviesteille, hyödyllinen raportoitaessa epänormaaleista mutta ei-kriittisistä tilanteista.
- LOG_ERROR: virheilmoituksille, hyödyllinen raportoitaessa kriittisistä tilanteista, jotka estävät ohjelmaa toimimasta kunnolla.
- LOG_FATAL: kohtalokkaille viesteille, hyödyllinen raportoitaessa peruuttamattomista tilanteista, jotka edellyttävät ohjelman pysäyttämistä.
Voit hallita lokiviestien tarkkuutta käyttämällä määritystiedoston log_level-
Jos esimerkiksi haluamme näyttää vain ERROR- ja FATAL-tason viestit, voimme käyttää:
[yleinen] log_level = 3
Tasot on numeroitu 0-4, yksityiskohtaisimmasta vähiten yksityiskohtaiseen. Oletuksena taso on 0, joka näyttää kaikki viestit.
Kuinka hallita lokitiedoston kokoa?
c loggerin avulla voit rajoittaa lokitiedoston kokoa käyttämällä asetustiedoston max_file_size-
Jos esimerkiksi haluamme lokitiedoston olevan enintään 1 Mt, voimme käyttää:
[yleinen] max_file_size = 1048576
Koko ilmaistaan tavuina. Oletuksena kokorajoitusta ei ole.
Kun lokitiedosto saavuttaa enimmäiskoon, c logger luo uuden tiedoston, jossa on numeerinen pääte. Jos lokitiedoston nimi on esimerkiksi log.txt
, ensimmäinen luotu tiedosto on log.txt.1
, sitten log.txt.2
jne. Luotujen tiedostojen enimmäismäärää ohjaa määritystiedoston max_file_count
Jos esimerkiksi haluamme säilyttää enintään 10 lokitiedostoa, voimme käyttää:
[yleinen] max_file_count = 10
Oletuksena tiedostojen lukumäärää ei ole rajoitettu.
UKK
Mitä eroa on c loggerin ja muiden lokikirjastojen, kuten log4c tai nglogc, välillä?
c logger erottuu yksinkertaisuudestaan ja kevyydestään. Siinä ei ole niin paljon ominaisuuksia kuin muissa, kattavammissa kirjastoissa, mutta se kattaa välttämättömät kirjaustarpeet. Se on myös yhteensopiva C89- ja kierreturvastandardin kanssa.
Kuinka näytän lokiviestit muussa kuin tekstimuodossa?
c logger tukee vain lokiviestien tekstimuotoa. Jos haluat käyttää jotakin muuta muotoa, kuten JSON- tai XML-muotoa, sinun on kirjoitettava oma muotoilufunktiosi ja kutsuttava sitä logger- funktiossa
.
Miten lokiviestit suodatetaan tunnisteen tai tason perusteella?
c logger ei tarjoa edistynyttä lokiviestien suodatusta. Voit hallita viestien yleistä tasoa vain määritystiedoston log_level-
Jos haluat suodattaa viestejä tunnisteen tai tason perusteella, sinun on kirjoitettava oma suodatintoiminto ja kutsuttava se logger-
.
Kuinka lähetän lokiviestejä muuhun kohteeseen kuin konsoliin tai tiedostoon?
c logger tukee vain konsolia ja tiedostoa lokiviestien kohteina. Jos haluat lähettää viestit toiseen kohteeseen, kuten tietokantaan tai verkkopalveluun, sinun on kirjoitettava oma lähetystoiminto ja kutsuttava se lokitoimintoon
.
Kuinka viankorjaus c-loggerissa on ongelma?
c logger tarjoaa logger_debug
, joka näyttää tietoja kirjaston sisäisestä tilasta. Voit soittaa sille milloin tahansa tarkistaaksesi, toimiiko c logger oikein.
Johtopäätös
c logger on yksinkertainen ja tehokas C-kielen lokikirjasto, jonka avulla voit kirjoittaa lokiviestejä tiedostoon tai konsoliin eritasoisina ja eritasoisina. Se on helppo asentaa ja käyttää, ja se tarjoaa mukauttamisen määritystiedoston avulla. c logger perustuu olio-ohjelmoinnin periaatteeseen , jonka avulla voit luoda logger-objekteja tietyillä ominaisuuksilla ja menetelmillä. c logger on ihanteellinen ratkaisu kehittäjille, jotka haluavat lisätä kirjaustoimintoja C-projekteihinsa ilman vaivaa.