Gibt es eine Protokoll-Bibliothek für C? (wie log4j für C)
Arbeite ich schon in Java für eine lange Zeit, und ich habe accostumed verwenden Sie die log4j-Bibliothek für die logs. Es ist eine wunderbare, und jetzt, dass ich ' m verschieben auf C möchte ich finden, wenn es eine ähnliche Bibliothek für Protokolle, die in dieser Sprache.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So weit ich weiß von den folgenden Bibliotheken für die Anmeldung: log4c, sclog4c, syslog, zlog.
log4c
log4c wurde erfunden, um eine Log4J für C. Wenn Sie speziell auf der Suche nach "so etwas wie Log4J", weil Sie es wollen, so zu sein wie "Log4J", das ist wahrscheinlich das, was Sie suchen.
Links
sclog4c
sclog4c wurde erfunden, um so einfach sein, wie die am häufigsten verwendeten Funktionen von
java.util.logging
- so einfach wie möglich. Wenn Sie auf der Suche nach "so etwas wie Log4J", weil Sie wollen, dass es so klein und einfach wie möglich, das ist wahrscheinlich das, was Sie suchen.Links
syslog
syslog wurde ursprünglich von Eric Allman als Teil von sendmail und hat sich zum defacto-standard für daemon /server-Protokollierung in POSIX-Umgebungen. Es ist client-server basiert, in der Regel der Dämon, der will, dass etwas protokolliert wird, senden Sie die log-Daten einem syslogd lauscht auf UDP-port 514.
Wenn Sie speziell auf der Suche nach "so etwas wie Log4J", weil Sie wirklich wollen, um log-daemon oder server, das ist wahrscheinlich das, was Sie suchen.
Links
zlog
Dieser wurde erfunden, um wie log4c, nur - nach Ihrer Beschreibung - kleiner und flexibler bei der gleichen Zeit.
Links
Sonstiges
Power vs. Lean
Aufgrund der unterschiedlichen Art und Weise, wie C-links, denkt und arbeitet, würde ich nicht auf ein logging-framework, welches es ist mächtig im Allgemeinen Fall - anders als in Java. Wenn Sie einen "ausgewachsenen desktop-Anwendungen" und darüber hinaus mit leistungsstarken logging-frameworks in Java ist sicherlich ein guter Weg zu gehen. Wenn Sie implementieren, Befehlszeilen-tools oder ähnliches, ich Wette, dass
eine schlanke Rahmen ist besser - warum würden Sie wollen, zu hängen, lib2xml nur für die Zwecke der Protokollierung...
Geschwindigkeit
In Fall-Geschwindigkeit resp. nicht verschwenden Zyklen Angelegenheiten, die Ihnen aus irgendeinem Grund, Aussehen für ein logging-framework, die Makros verwendet, um auswerten der log-level, bevor die anderen Argumente werden bewertet.
Der Nachteil ist, dass Sie nicht aufrufen kann, eine log-routine mit Argumenten, die Nebenwirkungen haben. Aber das sollte nicht sein, ein use-case sowieso. Es wäre erstaunlich, auch wenn log-Anweisungen wurden nicht vernachlässigbar, da mit Nebenwirkungen.
Der Vorteil ist, dass log-Anweisungen in einem solchen Rahmen hinzufügen, damit einige Zyklen, sind Sie fast nicht da - nur ein Zugang zu einem globalen, einem Scheck und einer bedingten Verzweigung, überspringen Sie den rest der log-code - 2 Anleitungen, 1 Zyklus im besten Fall auf viele der heutigen CPUs.
Haftungsausschluss
Ich bin der Autor von sclog4c.
Es ist ein log4c C-Bibliothek, die imitiert die log4j Java-Bibliothek. Aus der log4c Dokumentation:
Andere option zu prüfen, ist zf_log:
Zum Beispiel, der Ausgabe-INFO-log-Nachricht:
Wird wie folgt Aussehen:
Genaue Darstellung ist konfigurierbar und hängt von build-Typ (debug /release).