Was ist „C-Logger“ und wie wird er verwendet?

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.
GetPaidStock.com 648cc5e1c018c

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.

GetPaidStock.com 648cc730e4ed6

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; } 
GetPaidStock.com 648cc8415ebd3

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?

GetPaidStock.com 648cc7c60325c

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?

GetPaidStock.com 648cc93a4a071

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.

Vorheriger Artikel Was sind Cover bei Bereal?
Nächster Artikel Facebook Messenger-Bug? Was tun, um Pannenprobleme zu beheben?
Hallo, ich bin François :) In meiner Freizeit Redakteur, der es liebt, seine Leidenschaft zu teilen: TT High Tech! 😍 Egal ob Hardware, Software, Videospiele, Social Media und viele weitere Bereiche der Seite. Ich teile meine Analysen, meine Tests, Tutorials und meine Favoriten auf verschiedenen Medien mit Ihnen. Ich bin ein sachkundiger und anspruchsvoller Technikliebhaber, der nicht nur der Mode folgt, sondern Sie zu den besten Lösungen führen möchte. Also bleibt gespannt!