Vad är "c logger" och hur använder man den?

c logger är ett enkelt och effektivt loggningsbibliotek för C-språket . Det låter dig skriva loggmeddelanden till en fil eller till konsolen, med olika detaljnivåer och kontroll. I den här artikeln kommer vi att se vilka funktioner C logger erbjuder, hur du installerar den och använder den i dina C-projekt.

C logger funktioner

c logger är ett lättviktsbibliotek, som bara är 500 rader källkod. Den är kompatibel med C89-standarden och är gängsäker. Den erbjuder två typer av loggning:

  • Konsolloggning, som visar loggmeddelanden i standard- eller felutgång.
  • Logga till fil, som skriver loggmeddelanden till en textfil, med automatisk rotation baserat på filstorlek.
GetPaidStock.com 648cc5e1c018c

c logger låter dig också anpassa loggning med en konfigurationsfil, där du kan definiera meddelandeformatet, detaljnivån, namnet på loggfilen, den maximala filstorleken, etc.

Hur installerar man c logger?

För att installera c logger, ladda helt enkelt ner källkoden från GitHub-förvaret och kompilera den med din favorit C-kompilator. Till exempel, med gcc:

$ git klon https://github.com/yksz/c-logger.git $ cd c-logger $ gcc -c -o logger.o logger.c $ ar rcs libclogger.a logger.o

Detta kommer att skapa ett statiskt libclogger.a-arkiv som du kan länka till ditt C-program. Du måste också inkludera logger.h-huvudfilen i dina källfiler.

GetPaidStock.com 648cc730e4ed6

Hur använder man clogger?

För att använda c logger måste du först initiera biblioteket med logger_init , ge det namnet på konfigurationsfilen eller NULL om du vill använda standardparametrarna. loggningsfunktionen för att skriva loggmeddelanden, skicka det en tagg, en nivå och ett meddelande . Till exempel :

#include "logger.h" int main(void) { /* Initiera biblioteket med filen config.ini */ if (logger_init("config.ini") != 0) { fprintf(stderr, "Initialiseringsfel av c logger\n"); retur 1; } /* Skriv ett meddelande på INFO-nivå med taggen "main" */ logger("main", LOG_INFO, "Start of program"); /* Skriv ett ERROR-nivåmeddelande med taggen "main" */ logger("main", LOG_ERROR, "Fatal error"); /* Avsluta biblioteket */ logger_end(); returnera 0; } 
GetPaidStock.com 648cc8415ebd3

Formatet på loggmeddelanden beror på vilken konfigurationsfil som används. Som standard har den formen:

datum-tid tag meddelande nivå

Till exempel :

2023-06-13 02:37:16 huvud INFO Start av program 2023-06-13 02:37:16 huvud FEL Allvarligt fel

Formatet kan ändras med hjälp av följande variabler i konfigurationsfilen:

  • %d: datumet i formatet ÅÅÅÅ-MM-DD
  • %t: tid i formatet TT:MM:SS
  • %c: meddelandetaggen
  • %l: meddelandenivå
  • %m: meddelandet
  • %n: en radbrytning

Om vi ​​till exempel vill ha ett kortare format kan vi använda:

[formats] simple = "%t %c %l %m%n"

Vilka detaljnivåer finns tillgängliga?

GetPaidStock.com 648cc7c60325c

c logger erbjuder fem detaljnivåer för loggmeddelanden:

  • LOG_DEBUG: för felsökningsmeddelanden, användbart för utvecklare.
  • LOG_INFO: för informativa meddelanden, användbart för användare.
  • LOG_WARN: för varningsmeddelanden, användbart för att rapportera onormala men icke-kritiska situationer.
  • LOG_ERROR: för felmeddelanden, användbart för att rapportera kritiska situationer som hindrar programmet från att fungera korrekt.
  • LOG_FATAL: för fatala meddelanden, användbart för att rapportera oåterkalleliga situationer som kräver att programmet stoppas.

Du kan styra detaljnivån för loggmeddelanden med hjälp av log_level i konfigurationsfilen. Om vi ​​till exempel bara vill visa meddelanden på ERROR- och FATAL-nivå, kan vi använda:

[allmänt] log_level = 3

Nivåerna är numrerade 0 till 4, från mest detaljerade till minst detaljerade. Som standard är nivån 0, vilket visar alla meddelanden.

Hur styr man storleken på loggfilen?

GetPaidStock.com 648cc93a4a071

c logger låter dig begränsa storleken på loggfilen genom att använda max_file_size i konfigurationsfilen. Om vi ​​till exempel vill att loggfilen inte ska överstiga 1 MB kan vi använda:

[allmänt] max_file_size = 1048576

Storleken uttrycks i byte. Som standard finns det ingen storleksgräns.

När loggfilen når maximal storlek skapar c logger en ny fil med ett numeriskt suffix. Om loggfilens namn till exempel är log.txt , blir den första filen som skapas log.txt.1 , sedan log.txt.2 , etc. Det maximala antalet filer som skapas styrs av max_file_count i konfigurationsfilen. Om vi ​​till exempel vill behålla högst 10 loggfiler kan vi använda:

[allmänt] max_file_count = 10

Som standard finns det ingen begränsning på antalet filer.

Vanliga frågor

Vad är skillnaden mellan c logger och andra loggningsbibliotek som log4c eller nglogc?

c logger utmärker sig för sin enkelhet och lätthet. Den har inte lika många funktioner som andra, mer omfattande bibliotek, men den täcker de väsentliga loggningsbehoven. Den är också kompatibel med C89 och gängsäker standard.

Hur visar jag loggmeddelanden i ett annat format än text?

c logger stöder endast textformat för loggmeddelanden. Om du vill använda ett annat format, som JSON eller XML, måste du skriva din egen formateringsfunktion och anropa den i loggerfunktionen .

Hur filtrerar man loggmeddelanden baserat på tagg eller nivå?

c logger erbjuder inte avancerad filtrering av loggmeddelanden. Du kan bara styra den övergripande meddelandenivån med log_level i konfigurationsfilen. Om du vill filtrera meddelanden baserat på tagg eller nivå måste du skriva din egen filterfunktion och anropa den i loggerfunktionen .

Hur skickar jag loggmeddelanden till en annan destination än konsolen eller filen?

c logger stöder endast konsol och fil som destinationer för loggmeddelanden. Om du vill skicka meddelandena till en annan destination, till exempel en databas eller webbtjänst, måste du skriva din egen skickafunktion och anropa den i loggerfunktionen .

Hur felsöker man c-logger vid problem?

c logger tillhandahåller en logger_debug- som visar information om bibliotekets interna tillstånd. Du kan ringa den när som helst för att kontrollera om c-loggern fungerar korrekt.

Slutsats

c logger är ett enkelt och effektivt loggningsbibliotek för språket C. Det låter dig skriva loggmeddelanden till en fil eller till konsolen, med olika detaljnivåer och kontroll. Det är lätt att installera och använda och erbjuder anpassning med en konfigurationsfil. c logger är baserad på principen om objektorienterad programmering, vilket gör att du kan skapa loggerobjekt med specifika egenskaper och metoder. c logger är en idealisk lösning för utvecklare som vill lägga till loggningsfunktioner till sina C-projekt utan krångel.

Föregående artikel Vad är omslag på bereal?
Nästa artikel Facebook Messenger-bugg? Vad ska man göra för att lösa haveriproblem?
Hej jag, det är François :) Redaktör på min fritid som älskar att dela med sig av sin passion: TT High tech! 😍 Oavsett om det är hårdvara, mjukvara, tv-spel, sociala medier och många andra områden på sajten. Jag delar med mig av mina analyser, mina tester, tutorials och mina favoriter på olika medier. Jag är en kunnig och krävande teknofil, som inte bara följer modet, utan som försöker guida dig mot de bästa lösningarna. Så håll utkik!