Was ist ein „Clogger“ und wie verwende ich ihn?

C Logger ist eine einfache und effiziente Logging-Bibliothek für die Programmiersprache C. Sie ermöglicht das Schreiben von Logmeldungen in eine Datei oder auf die Konsole mit unterschiedlichem Detaillierungsgrad und Kontrollmöglichkeiten. In diesem Artikel erfahren Sie, welche Funktionen C Logger bietet, wie Sie es installieren und wie Sie es in Ihren C-Projekten verwenden.

Die Eigenschaften des Cloggers

C logger ist eine schlanke Bibliothek mit nur 500 Zeilen Quellcode. Sie ist mit dem C89-Standard kompatibel und threadsicher. Sie bietet zwei Arten der Protokollierung:

  • Konsolenprotokollierung, bei der Protokollmeldungen in der Standardausgabe oder in der Fehlerausgabe angezeigt werden.
  • Protokollierung in eine Datei, die Protokollmeldungen in eine Textdatei schreibt, mit automatischer Rotation basierend auf der Dateigröße.
GetPaidStock.com 648cc5e1c018c

Der c-Logger ermöglicht außerdem die Anpassung der Protokollierung mithilfe einer Konfigurationsdatei, in der Sie das Nachrichtenformat, den Detaillierungsgrad, den Namen der Protokolldatei, die maximale Dateigröße usw. festlegen können.

Wie installiere ich Clogger?

Um C Logger zu installieren, laden Sie einfach den Quellcode aus dem GitHub-Repository herunter und kompilieren Sie 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 Archiv namens libclogger.a erstellt, das Sie mit Ihrem C-Programm verknüpfen können. Sie müssen außerdem die Header-Datei logger.h in Ihre Quelldateien einbinden.

GetPaidStock.com 648cc730e4ed6

Wie benutze ich den Clogger?

Um C Logger zu verwenden, müssen Sie die Bibliothek zunächst mit der `logger_init` . Übergeben Sie ihr den Namen der Konfigurationsdatei oder `NULL`, wenn Sie die Standardeinstellungen verwenden möchten. Anschließend können Sie mit der `logger` Protokollmeldungen schreiben, indem Sie ihr ein Tag, eine Stufe und eine Nachricht übergeben. Zum Beispiel:

#include "logger.h" int main(void) { /* Initialisiere die Bibliothek mit der config.ini-Datei */ if (logger_init("config.ini") != 0) { fprintf(stderr, "Fehler beim Initialisieren des C-Loggers\n"); return 1; } /* Schreibe eine INFO-Meldung mit dem Tag "main" */ logger("main", LOG_INFO, "Programm gestartet"); /* Schreibe eine ERROR-Meldung mit dem Tag "main" */ logger("main", LOG_ERROR, "Schwerwiegender Fehler"); /* Beende die Bibliothek */ logger_end(); return 0; }
GetPaidStock.com 648cc8415ebd3

Das Format der Protokollmeldungen hängt von der verwendeten Konfigurationsdatei ab. Standardmäßig hat es folgendes Format:

Nachricht auf Datums-/Zeit-Tag-Ebene

Zum Beispiel :

2023-06-13 02:37:16 main INFO Programmstart 2023-06-13 02:37:16 main ERROR Schwerwiegender Fehler

Das Format kann mithilfe der folgenden Variablen in der Konfigurationsdatei geändert werden:

  • %d: das Datum im Format JJJJ-MM-TT
  • %t: die Uhrzeit im Format HH:MM:SS
  • %c: das Nachrichten-Tag
  • %l: die 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 Detailebenen sind verfügbar?

GetPaidStock.com 648cc7c60325c

Der C-Logger bietet fünf Detailstufen für Protokollmeldungen:

  • LOG_DEBUG: für Debugging-Meldungen, nützlich für Entwickler.
  • LOG_INFO: für informative Meldungen, nützlich für Benutzer.
  • LOG_WARN: für Warnmeldungen, nützlich zur Meldung von abnormalen, aber nicht kritischen Situationen.
  • LOG_ERROR: für Fehlermeldungen, nützlich, um kritische Situationen zu signalisieren, die die korrekte Funktion des Programms verhindern.
  • LOG_FATAL: für schwerwiegende Fehlermeldungen; nützlich, um nicht behebbare Situationen zu signalisieren, die ein Anhalten des Programms erfordern.

Der Detaillierungsgrad der Protokollmeldungen kann über die `log_level` in der Konfigurationsdatei gesteuert werden. Wenn Sie beispielsweise nur ERROR- und FATAL-Meldungen anzeigen möchten, können Sie Folgendes verwenden:

[general] log_level = 3

Die Ebenen sind von 0 bis 4 nummeriert, von der detailliertesten zur am wenigsten detaillierten. Standardmäßig ist die Ebene auf 0 eingestellt, wodurch alle Meldungen angezeigt werden.

Wie kann die Größe der Protokolldatei gesteuert werden?

GetPaidStock.com 648cc93a4a071

Mit dem C-Logger können Sie die Größe der Protokolldatei mithilfe der `max_file_size` in der Konfigurationsdatei begrenzen. Wenn die Protokolldatei beispielsweise nicht größer als 1 MB sein soll, können Sie Folgendes verwenden:

[general] max_file_size = 1048576

Die Größe wird in Bytes angegeben. Standardmäßig gibt es keine Größenbeschränkung.

Wenn die Protokolldatei ihre maximale Größe erreicht, erstellt der C-Logger eine neue Datei mit einer numerischen Endung. Wenn die Protokolldatei beispielsweise den Namen log.txt , wird die erste Datei log.txt.1 , dann log.txt.2 usw. Die maximale Anzahl der erstellten Dateien wird durch die `max_file_count` in der Konfigurationsdatei festgelegt. Um beispielsweise maximal 10 Protokolldateien zu speichern, können Sie Folgendes verwenden:

[general] max_file_count = 10

Standardmäßig gibt es keine Begrenzung der Anzahl der Dateien.

Häufig gestellte Fragen

Worin besteht der Unterschied zwischen dem C-Logger und anderen Logging-Bibliotheken wie log4c oder nglogc?

Der C-Logger zeichnet sich durch seine Einfachheit und seinen geringen Ressourcenverbrauch aus. Obwohl er nicht so viele Funktionen wie einige umfangreichere Bibliotheken bietet, deckt er die wesentlichen Anforderungen an die Protokollierung ab. Er ist zudem mit dem C89-Standard kompatibel und threadsicher.

Wie kann ich Protokollmeldungen in einem anderen Format als Text anzeigen?

Der C-Logger unterstützt Logmeldungen nur im Textformat. Wenn Sie ein anderes Format wie JSON oder XML verwenden möchten, müssen Sie eine eigene Formatierungsfunktion schreiben und diese innerhalb der Logger .

Wie kann ich Protokollmeldungen anhand von Tags oder Ebenen filtern?

Der C-Logger bietet keine erweiterten Filterfunktionen für Logmeldungen. Sie können lediglich die allgemeine Meldungsebene über die `log_level` `logger` aufrufen .

Wie kann ich Protokollmeldungen an ein anderes Ziel als die Konsole oder eine Datei senden?

Der C-Logger unterstützt nur die Konsole und Dateien als Ziele für Logmeldungen. Wenn Sie Meldungen an ein anderes Ziel senden möchten, beispielsweise an eine Datenbank oder einen Webdienst, müssen Sie eine eigene Sendefunktion schreiben und diese innerhalb der Logger- .

Wie kann ich den C-Logger debuggen, wenn ein Problem auftritt?

`logger_debug`- Funktion , die Informationen über den internen Zustand der Bibliothek anzeigt. Sie können diese jederzeit aufrufen, um zu überprüfen, ob der C-Logger korrekt funktioniert.

Abschluss

Clogger ist eine einfache und effiziente Logging-Bibliothek für die Programmiersprache C. Sie ermöglicht das Schreiben von Logmeldungen in eine Datei oder auf die Konsole mit unterschiedlichem Detaillierungsgrad und Kontrollmöglichkeiten. Installation und Anwendung sind unkompliziert, und die Bibliothek lässt sich über eine Konfigurationsdatei anpassen. Clogger basiert auf objektorientierten Programmierprinzipien , wodurch sich Logger-Objekte mit spezifischen Eigenschaften und Methoden erstellen lassen. Clogger ist die ideale Lösung für Entwickler, die ihren C-Projekten problemlos Logging-Funktionalität hinzufügen möchten.

Vorheriger Artikel : Was sind die Wiederholungen auf Bereal?
Nächster Artikel: Facebook Messenger-Fehler? Was tun, um die Ausfallprobleme zu beheben?
Hallo zusammen, hier ist François :) Ich schreibe in meiner Freizeit und teile meine Leidenschaft für Technik mit euch! 😍 Ob Hardware, Software, Videospiele, Social Media oder vieles mehr – auf dieser Seite findet ihr alles. Ich teile meine Analysen, Rezensionen, Tutorials und meine Lieblingsprodukte verschiedener Plattformen. Als sachkundiger und anspruchsvoller Technik-Enthusiast folge ich nicht einfach nur Trends, sondern helfe euch, die besten Lösungen zu finden. Also bleibt dran!