C Logger è una libreria di log semplice ed efficiente per il linguaggio C. Permette di scrivere messaggi di log in un file o nella console, con diversi livelli di dettaglio e controllo. In questo articolo, vedremo quali funzionalità offre C Logger, come installarlo e come utilizzarlo nei vostri progetti in C.
Le caratteristiche del clogger
C Logger è una libreria leggera, composta da sole 500 righe di codice sorgente. È compatibile con lo standard C89 ed è thread-safe. Offre due tipi di logging:
- Registrazione della console, che visualizza i messaggi di registro nell'output standard o nell'output di errore.
- Registrazione in un file, che scrive i messaggi di registro in un file di testo, con rotazione automatica in base alle dimensioni del file.

c logger consente inoltre la personalizzazione della registrazione con un file di configurazione, in cui è possibile definire il formato del messaggio, il livello di dettaglio, il nome del file di registro, la dimensione massima del file, ecc.
Come faccio a installare Clogger?
Per installare C Logger, è sufficiente scaricare il codice sorgente dal repository GitHub e compilarlo con il compilatore C preferito. Ad esempio, con gcc:
$ git clone https://github.com/yksz/c-logger.git $ cd c-logger $ gcc -c -o logger.o logger.c $ ar rcs libclogger.a logger.o
Verrà creato un archivio statico libclogger.a che potrai collegare al tuo programma C. Dovrai anche includere il file di intestazione logger.h nei tuoi file sorgente.

Come si usa Clogger?
Per utilizzare C Logger, è necessario innanzitutto inizializzare la libreria con la `logger_init` , passandole il nome del file di configurazione o `NULL` se si desidera utilizzare le impostazioni predefinite. Quindi, è possibile utilizzare la `logger` per scrivere messaggi di log, passandole un tag, un livello e un messaggio. Ad esempio:
#include "logger.h" int main(void) { /* Inizializza la libreria con il file config.ini */ if (logger_init("config.ini") != 0) { fprintf(stderr, "Errore durante l'inizializzazione di c logger\n"); return 1; } /* Scrive un messaggio di livello INFO con il tag "main" */ logger("main", LOG_INFO, "Programma avviato"); /* Scrive un messaggio di livello ERROR con il tag "main" */ logger("main", LOG_ERROR, "Errore fatale"); /* Termina la libreria */ logger_end(); return 0; }

Il formato dei messaggi di log dipende dal file di configurazione utilizzato. Per impostazione predefinita, è il seguente:
messaggio a livello di tag datetime
Per esempio :
2023-06-13 02:37:16 main INFO Avvio del programma 2023-06-13 02:37:16 main ERROR Errore fatale
Il formato può essere modificato utilizzando le seguenti variabili nel file di configurazione:
- %d: la data nel formato AAAA-MM-GG
- %t: l'ora nel formato HH:MM:SS
- %c: il tag del messaggio
- %l: il livello del messaggio
- %m: il messaggio
- %n: un'interruzione di riga
Ad esempio, se vogliamo un formato più breve, possiamo usare:
[formati] semplice = "%t %c %l %m%n"
Quali livelli di dettaglio sono disponibili?

c logger offre cinque livelli di dettaglio per i messaggi di registro:
- LOG_DEBUG: per il debug dei messaggi, utile per gli sviluppatori.
- LOG_INFO: per messaggi informativi, utili per gli utenti.
- LOG_WARN: per messaggi di avviso, utile per segnalare situazioni anomale ma non critiche.
- LOG_ERROR: per messaggi di errore, utile per segnalare situazioni critiche che impediscono il corretto funzionamento del programma.
- LOG_FATAL: per messaggi fatali, utile per segnalare situazioni irrecuperabili che richiedono l'arresto del programma.
Il livello di dettaglio nei messaggi di log può essere controllato utilizzando la `log_level` nel file di configurazione. Ad esempio, se si desidera visualizzare solo i messaggi di ERRORE e FATAL, è possibile utilizzare:
[generale] log_level = 3
I livelli sono numerati da 0 a 4, dal più dettagliato al meno dettagliato. Per impostazione predefinita, il livello è 0, che visualizza tutti i messaggi.
Come controllare la dimensione del file di registro?

c logger consente di limitare le dimensioni del file di log utilizzando la `max_file_size` nel file di configurazione. Ad esempio, se si desidera che il file di log non superi 1 MB, è possibile utilizzare:
[generale] dimensione_massima_file = 1048576
La dimensione è espressa in byte. Per impostazione predefinita, non esiste alcun limite di dimensione.
Quando il file di registro raggiunge la dimensione massima, c logger crea un nuovo file con un suffisso numerico. Ad esempio, se il nome del file di registro è log.txt , il primo file creato sarà log.txt.1 , poi log.txt.2 e così via. Il numero massimo di file creati è controllato dalla max_file_count nel file di configurazione. Ad esempio, se si desidera conservare un massimo di 10 file di registro, è possibile utilizzare:
[generale] max_file_count = 10
Per impostazione predefinita, non esiste alcun limite al numero di file.
Domande frequenti
Qual è la differenza tra c logger e altre librerie di registrazione come log4c o nglogc?
C Logger si distingue per la sua semplicità e il design leggero. Pur non offrendo tante funzionalità come alcune librerie più complete, soddisfa le esigenze essenziali del logging. È inoltre compatibile con lo standard C89 e thread-safe.
Come posso visualizzare i messaggi di registro in un formato diverso dal testo?
c logger supporta solo il formato testo per i messaggi di log. Se si desidera utilizzare un altro formato, come JSON o XML, sarà necessario scrivere una funzione di formattazione personalizzata e richiamarla all'interno della logger .
Come posso filtrare i messaggi di registro in base al tag o al livello?
c logger non offre un filtraggio avanzato dei messaggi di log. È possibile controllare il livello complessivo del messaggio solo tramite la `log_level` nel file di configurazione. Se si desidera filtrare i messaggi in base a tag o livello, è necessario scrivere una funzione di filtraggio personalizzata e richiamarla all'interno della `logger` .
Come posso inviare messaggi di registro a una destinazione diversa dalla console o da un file?
Il logger C supporta solo la console e i file come destinazioni per i messaggi di log. Se si desidera inviare messaggi a un'altra destinazione, come un database o un servizio web, sarà necessario scrivere una funzione di invio personalizzata e richiamarla all'interno della logger .
Come posso eseguire il debug di C-logger se c'è un problema?
funzione `logger_debug` che visualizza informazioni sullo stato interno della libreria. È possibile richiamarla in qualsiasi momento per verificare il corretto funzionamento del logger C.
Conclusione
Clogger è una libreria di logging semplice ed efficiente per il linguaggio C. Permette di scrivere messaggi di log in un file o nella console, con diversi livelli di dettaglio e controllo. È facile da installare e utilizzare e offre possibilità di personalizzazione tramite un file di configurazione. Clogger si basa sui principi della programmazione orientata agli oggetti , che consentono di creare oggetti logger con proprietà e metodi specifici. Clogger è la soluzione ideale per gli sviluppatori che desiderano aggiungere funzionalità di logging ai propri progetti C senza problemi.
![[GetPaidStock.com]-648cc8b4ec663](https://tt-hardware.com/wp-content/uploads/2023/06/GetPaidStock.com-648cc8b4ec663-696x464.jpg)


