c logger ist eine einfache und effiziente Protokollierungsbibliothek für die C-Sprache . Es ermöglicht Ihnen, Protokollmeldungen mit unterschiedlichem Detaillierungsgrad und Kontrolle in eine Datei oder in die Konsole zu schreiben. In diesem Artikel erfahren Sie, welche Funktionen der C-Logger bietet, wie Sie ihn installieren und in Ihren C-Projekten verwenden.
Funktionen des C-Loggers
c logger ist eine leichtgewichtige Bibliothek, die nur 500 Zeilen Quellcode umfasst. Es ist mit dem C89-Standard kompatibel und threadsicher. Es bietet zwei Arten der Protokollierung:
- Konsolenprotokollierung, die Protokollmeldungen in der Standard- oder Fehlerausgabe anzeigt.
- Protokollierung in eine Datei, bei der Protokollmeldungen in eine Textdatei geschrieben werden, mit automatischer Rotation basierend auf der Dateigröße.
Mit c logger können Sie die Protokollierung auch mit einer Konfigurationsdatei anpassen, in der Sie das Nachrichtenformat, den Detaillierungsgrad, den Namen der Protokolldatei, die maximale Dateigröße usw. definieren können.
Wie installiere ich den C-Logger?
Um den C-Logger zu installieren, laden Sie einfach den Quellcode aus dem GitHub-Repository herunter und kompilieren ihn mit Ihrem bevorzugten C-Compiler. Zum Beispiel mit 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
Dadurch wird ein statisches libclogger.a-Archiv erstellt, das Sie mit Ihrem C-Programm verknüpfen können. Sie müssen außerdem die Header-Datei logger.h in Ihre Quelldateien aufnehmen.
Wie benutzt man Clogger?
Um c logger zu verwenden, müssen Sie zunächst die Bibliothek mit der logger_init
und ihr den Namen der Konfigurationsdatei oder NULL übergeben, wenn Sie die Standardparameter verwenden möchten. Logger-
Funktion , um Protokollnachrichten zu schreiben und ihr ein Tag, eine Ebene und eine Nachricht zu übergeben. Zum Beispiel :
#include "logger.h" int main(void) { /* Initialisieren Sie die Bibliothek mit der config.ini-Datei */ if (logger_init("config.ini") != 0) { fprintf(stderr, "Initialization error of c Logger\n"); Rückgabe 1; } /* Schreiben Sie eine Nachricht auf INFO-Ebene mit dem Tag „main“ */ logger("main", LOG_INFO, "Start of program"); /* Schreiben Sie eine Nachricht auf ERROR-Ebene mit dem Tag „main“ */ logger("main", LOG_ERROR, "Fatal error"); /* Bibliothek beenden */ logger_end(); 0 zurückgeben; }
Das Format der Protokollmeldungen hängt von der verwendeten Konfigurationsdatei ab. Standardmäßig hat es die Form:
Datums-/Uhrzeit-Tag-Nachrichtenebene
Zum Beispiel :
13.06.2023 02:37:16 Haupt-INFO Programmstart 13.06.2023 02:37:16 Haupt-FEHLER Schwerwiegender Fehler
Das Format kann mithilfe der folgenden Variablen in der Konfigurationsdatei geändert werden:
- %d: das Datum im Format JJJJ-MM-TT
- %t: Zeit im Format HH:MM:SS
- %c: das Nachrichten-Tag
- %l: Nachrichtenebene
- %m: die Nachricht
- %n: ein Zeilenumbruch
Wenn wir beispielsweise ein kürzeres Format wünschen, können wir Folgendes verwenden:
[formats] simple = „%t %c %l %m%n“
Welche Detaillierungsgrade sind verfügbar?
c logger bietet fünf Detailebenen für Protokollmeldungen:
- LOG_DEBUG: für Debug-Meldungen, nützlich für Entwickler.
- LOG_INFO: für informative Nachrichten, nützlich für Benutzer.
- LOG_WARN: für Warnmeldungen, nützlich für die Meldung ungewöhnlicher, aber unkritischer Situationen.
- LOG_ERROR: für Fehlermeldungen, nützlich zum Melden kritischer Situationen, die die ordnungsgemäße Funktion des Programms verhindern.
- LOG_FATAL: für schwerwiegende Meldungen, nützlich zum Melden nicht behebbarer Situationen, die ein Stoppen des Programms erfordern.
Sie können den Detaillierungsgrad von Protokollmeldungen mithilfe der log_level
in der Konfigurationsdatei steuern. Wenn wir beispielsweise nur Meldungen der Stufen ERROR und FATAL anzeigen möchten, können wir Folgendes verwenden:
[allgemein] log_level = 3
Die Ebenen sind von 0 bis 4 nummeriert, von der detailliertesten zur am wenigsten detaillierten Ebene. Standardmäßig ist die Ebene 0, wodurch alle Nachrichten angezeigt werden.
Wie kontrolliere ich die Größe der Protokolldatei?
Mit c logger können Sie die Größe der Protokolldatei begrenzen, indem Sie die max_file_size
in der Konfigurationsdatei verwenden. Wenn wir beispielsweise möchten, dass die Protokolldatei 1 MB nicht überschreitet, können wir Folgendes verwenden:
[allgemein] max_file_size = 1048576
Die Größe wird in Bytes ausgedrückt. Standardmäßig gibt es keine Größenbeschränkung.
Wenn die Protokolldatei die maximale Größe erreicht, erstellt c logger eine neue Datei mit einem numerischen Suffix. Wenn der Name der Protokolldatei beispielsweise log.txt
, lautet die erste erstellte Datei log.txt.1
, dann log.txt.2
usw. Die maximale Anzahl erstellter Dateien wird durch die max_file_count
in der Konfigurationsdatei gesteuert. Wenn wir beispielsweise maximal 10 Protokolldateien behalten möchten, können wir Folgendes verwenden:
[allgemein] max_file_count = 10
Standardmäßig gibt es keine Begrenzung für die Anzahl der Dateien.
FAQs
Was ist der Unterschied zwischen c logger und anderen Protokollierungsbibliotheken wie log4c oder nglogc?
c logger zeichnet sich durch seine Einfachheit und Leichtigkeit aus. Sie verfügt nicht über so viele Funktionen wie andere, umfassendere Bibliotheken, deckt jedoch die wesentlichen Protokollierungsanforderungen ab. Es ist auch mit dem C89- und Thread-Safe-Standard kompatibel.
Wie zeige ich Protokollmeldungen in einem anderen Format als Text an?
c logger unterstützt nur das Textformat für Protokollnachrichten. Wenn Sie ein anderes Format wie JSON oder XML verwenden möchten, müssen Sie Ihre eigene Formatierungsfunktion schreiben und diese in der Logger-
.
Wie filtere ich Protokollnachrichten basierend auf Tag oder Ebene?
c logger bietet keine erweiterte Filterung von Protokollnachrichten. Sie können den gesamten Nachrichtenpegel nur mit der log_level
in der Konfigurationsdatei steuern. Wenn Sie Nachrichten basierend auf Tag oder Ebene filtern möchten, müssen Sie Ihre eigene Filterfunktion schreiben und diese in der Logger-
.
Wie sende ich Protokollnachrichten an ein anderes Ziel als die Konsole oder die Datei?
c logger unterstützt nur Konsole und Datei als Ziele für Protokollmeldungen. Wenn Sie die Nachrichten an ein anderes Ziel senden möchten, beispielsweise eine Datenbank oder einen Webdienst, müssen Sie Ihre eigene Sendefunktion schreiben und diese in der Logger-
.
Wie kann ich den C-Logger bei Problemen debuggen?
c logger stellt eine logger_debug-
, die Informationen über den internen Status der Bibliothek anzeigt. Sie können es jederzeit aufrufen, um zu überprüfen, ob der C-Logger ordnungsgemäß funktioniert.
Abschluss
c logger ist eine einfache und effiziente Protokollierungsbibliothek für die Sprache C. Sie ermöglicht das Schreiben von Protokollmeldungen in eine Datei oder auf die Konsole mit unterschiedlichen Detaillierungs- und Kontrollebenen. Es ist einfach zu installieren und zu verwenden und bietet Anpassungsmöglichkeiten mit einer Konfigurationsdatei. c logger basiert auf dem Prinzip der objektorientierten Programmierung , das es Ihnen ermöglicht, Logger-Objekte mit spezifischen Eigenschaften und Methoden zu erstellen. c logger ist eine ideale Lösung für Entwickler, die ihren C-Projekten problemlos Protokollierungsfunktionen hinzufügen möchten.