c logger is een eenvoudige en efficiënte logbibliotheek voor de C-taal . Hiermee kunt u logberichten naar een bestand of naar de console schrijven, met verschillende niveaus van detail en controle. In dit artikel zullen we zien welke functies C logger biedt, hoe u het kunt installeren en gebruiken in uw C-projecten.
C-logger-functies
c logger is een lichtgewicht bibliotheek, die slechts 500 regels broncode bevat. Het is compatibel met de C89-standaard en is draadveilig. Het biedt twee soorten logboekregistratie:
- Consolelogboekregistratie, waarbij logberichten worden weergegeven in standaard- of foutuitvoer.
- Loggen naar bestand, waarmee logberichten naar een tekstbestand worden geschreven, met automatische rotatie op basis van de bestandsgrootte.
Met c logger kunt u de logboekregistratie ook aanpassen met een configuratiebestand, waarin u het berichtformaat, het detailniveau, de naam van het logbestand, de maximale bestandsgrootte, enz. kunt definiëren.
Hoe installeer ik c-logger?
Om c logger te installeren, downloadt u eenvoudig de broncode uit de GitHub-repository en compileert u deze met uw favoriete C-compiler. Met gcc bijvoorbeeld:
$ git kloon https://github.com/yksz/c-logger.git $ cd c-logger $ gcc -c -o logger.o logger.c $ ar rcs libclogger.a logger.o
Hierdoor wordt een statisch libclogger.a-archief gemaakt dat u kunt koppelen aan uw programma C. U moet ook het headerbestand logger.h in uw bronbestanden opnemen.
Hoe Clogger gebruiken?
Om c logger te gebruiken, moet u eerst de bibliotheek initialiseren met de logger_init
, waarbij u de naam van het configuratiebestand of NULL doorgeeft als u de standaardparameters wilt gebruiken. loggerfunctie om logberichten te schrijven, waarbij we er een tag, een niveau en een bericht aan doorgeven .
Bijvoorbeeld :
#include "logger.h" int main(void) { /* Initialiseer de bibliotheek met het config.ini-bestand */ if (logger_init("config.ini") != 0) { fprintf(stderr, "Initialisatiefout van c loggen\n"); retour 1; } /* Schrijf een bericht op INFO-niveau met de tag "main" */ logger("main", LOG_INFO, "Start of program"); /* Schrijf een bericht op ERROR-niveau met de tag "main" */ logger("main", LOG_ERROR, "Fatal error"); /* Bibliotheek beëindigen */ logger_end(); retour 0; }
Het formaat van logberichten is afhankelijk van het gebruikte configuratiebestand. Standaard heeft het de vorm:
datum-tijd tag berichtniveau
Bijvoorbeeld :
2023-06-13 02:37:16 hoofdINFO Programmastart 2023-06-13 02:37:16 hoofdFOUT Fatale fout
Het formaat kan worden gewijzigd met behulp van de volgende variabelen in het configuratiebestand:
- %d: de datum in het formaat JJJJ-MM-DD
- %t: tijd in UU:MM:SS-formaat
- %c: de berichttag
- %l: berichtniveau
- %m: het bericht
- %n: een regeleinde
Als we bijvoorbeeld een korter formaat willen hebben, kunnen we het volgende gebruiken:
[formaten] simpel = "%t %c %l %m%n"
Welke detailniveaus zijn beschikbaar?
c logger biedt vijf detailniveaus voor logberichten:
- LOG_DEBUG: voor foutopsporingsberichten, handig voor ontwikkelaars.
- LOG_INFO: voor informatieve berichten, handig voor gebruikers.
- LOG_WARN: voor waarschuwingsberichten, handig voor het melden van abnormale maar niet-kritieke situaties.
- LOG_ERROR: voor foutmeldingen, handig voor het melden van kritieke situaties die voorkomen dat het programma goed functioneert.
- LOG_FATAL: voor fatale berichten, handig voor het melden van onherstelbare situaties waarbij het programma moet worden gestopt.
U kunt het detailniveau van logberichten beheren met behulp van de log_level
in het configuratiebestand. Als we bijvoorbeeld alleen ERROR- en FATAL-niveauberichten willen weergeven, kunnen we het volgende gebruiken:
[algemeen] log_niveau = 3
Niveaus zijn genummerd van 0 tot 4, van meest gedetailleerd tot minst gedetailleerd. Standaard is het niveau 0, waardoor alle berichten worden weergegeven.
Hoe kan ik de grootte van het logbestand controleren?
Met c logger kunt u de grootte van het logbestand beperken door de max_file_size
in het configuratiebestand te gebruiken. Als we bijvoorbeeld willen dat het logbestand niet groter is dan 1 MB, kunnen we het volgende gebruiken:
[algemeen] max_bestandsgrootte = 1048576
De grootte wordt uitgedrukt in bytes. Standaard is er geen maximale grootte.
Wanneer het logbestand de maximale grootte bereikt, maakt c logger een nieuw bestand met een numeriek achtervoegsel. Als de naam van het logbestand bijvoorbeeld log.txt
, zal het eerste bestand log.txt.1
, daarna log.txt.2
, enz. Het maximale aantal aangemaakte bestanden wordt bepaald door de max_file_count
in het configuratiebestand. Als we bijvoorbeeld maximaal 10 logbestanden willen bijhouden, kunnen we het volgende gebruiken:
[algemeen] max_file_count = 10
Standaard is er geen limiet op het aantal bestanden.
Veelgestelde vragen
Wat is het verschil tussen clogger en andere logbibliotheken zoals log4c of nglogc?
c logger valt op door zijn eenvoud en lichtheid. Het heeft niet zoveel functies als andere, uitgebreidere bibliotheken, maar het dekt wel de essentiële logboekbehoeften. Het is ook compatibel met de C89 en draadveilige standaard.
Hoe kan ik logberichten in een ander formaat dan tekst weergeven?
c logger ondersteunt alleen tekstformaat voor logberichten. Als u een ander formaat wilt gebruiken, zoals JSON of XML, moet u uw eigen opmaakfunctie schrijven en deze in de loggerfunctie
.
Hoe logberichten filteren op basis van tag of niveau?
c logger biedt geen geavanceerde filtering van logberichten. U kunt het algehele berichtniveau alleen beheren met de log_level
in het configuratiebestand. Als u berichten wilt filteren op basis van tag of niveau, moet u uw eigen filterfunctie schrijven en deze in de loggerfunctie
.
Hoe stuur ik logberichten naar een andere bestemming dan de console of het bestand?
c logger ondersteunt alleen console en bestand als bestemmingen voor logberichten. Als u de berichten naar een andere bestemming wilt sturen, zoals een database of webservice, moet u uw eigen verzendfunctie schrijven en deze in de loggerfunctie
.
Hoe kan ik c-logger debuggen in geval van een probleem?
c logger biedt een logger_debug-
die informatie weergeeft over de interne status van de bibliotheek. U kunt deze op elk gewenst moment bellen om te controleren of de clogger goed werkt.
Conclusie
c logger is een eenvoudige en efficiënte logbibliotheek voor de taal C. Hiermee kunt u logberichten naar een bestand of naar de console schrijven, met verschillende niveaus van detail en controle. Het is eenvoudig te installeren en te gebruiken en biedt maatwerk met een configuratiebestand. c logger is gebaseerd op het principe van objectgeoriënteerd programmeren , waarmee u logger-objecten met specifieke eigenschappen en methoden kunt maken. c logger is een ideale oplossing voor ontwikkelaars die zonder gedoe logfunctionaliteit aan hun C-projecten willen toevoegen.