Erfahrung mit der Boost.Log-Protokollierungsbibliothek? [geschlossen]


88

Ich denke darüber nach, die Boost.Log-Protokollierungsbibliothek zu verwenden . Verwendet jemand Boost.Log? Bitte teilen Sie Ihre diesbezüglichen Erfahrungen mit.

Die anderen Bibliotheken, die ich in Betracht ziehe, sind Apache log4cxx (die Installation scheint mühsam zu sein, aber meine Teamkollegen möchten, dass etwas Einfaches gestartet wird) und Pantheios (das gleiche Problem, da es mit zusätzlichem Front- und Back-End funktioniert).


Ich habe mein eigenes Protokollierungssystem, aber ich überlege zu wechseln, so interessante Frage!
Cedric H.

21
bloost.log ist SEHR SEHR langsam, wahnsinnig komplex zu konfigurieren, hat seinen Überprüfungsprozess kaum bestanden und ist ab 1.47 noch nicht in der Boost-Version enthalten. Es ist eine dieser Bibliotheken, die es in den nächsten Jahren möglicherweise nicht in die Hauptreihe schaffen. Daher sind log4c usw. vorerst bessere Optionen.

4
Tatsächlich wurde erklärt, dass einige Korrekturen erforderlich sind und dass das aktuelle Ziel der Veröffentlichung dieser Sommer ist - aufgegebene Bibliotheken haben keinen Zeitplan und kein in Bearbeitung befindliches Repository. Es wurde auch vom Autor berichtet, dass der Benutzer SEHR SEHR gute Leistung gemeldet hat. Die Komplexität ist in einigen Kontexten nützlich. Wenn Sie sie nicht benötigen, können Sie einfach die bereitgestellten einfachen Makros verwenden. Daher stimme ich Ihrem Kommentar nicht zu.
Klaim

40
Ich wünschte wirklich, StackOverflow würde aufhören, offensichtlich nützliche Fragen wie diese als "nicht konstruktiv" zu schließen.
Stéphane

6
Ich frage mich, wie ist die Leistung im Jahr 2015? Vielleicht ist die Verwendung von 2.0 jetzt "OK"?
Vincas Dargis

Antworten:


41

UPDATE : Ich habe Boost.Log durch meine eigene benutzerdefinierte Protokollierung ersetzt, da dies aus verschiedenen Gründen beschlossen wurde, alle Boost-Abhängigkeiten in all meinen Projekten zu beseitigen. Wenn Sie mit Boost gut zurechtkommen, ist Boost.Log nach Klaims Antwort immer noch eine gültige Wahl .

Meine Erfahrung mit Boost.Log im Jahr 2010 folgt.


Ich habe Boost.Log erfolgreich in meine Spiel-Engine integriert und kann nur Gutes darüber sagen. Sicher, die Verwendung ist etwas früh, da Version 2 die eigentliche Version sein wird, die zum offiziellen Boost.Log wird.

Beachten Sie, dass die verfügbare Version "1.0" nicht beibehalten wird. Um Updates zu erhalten, müssen Sie die Version mit dem neuesten Stand (Trunk) verwenden, die möglicherweise instabil wird. Berücksichtigen Sie dies, wenn Sie diese Version in ernsthaften Projekten verwenden möchten. Wenn Sie keine Angst haben, hochmoderne Versionen oder zukünftige Brüche zu verwenden, dann versuchen Sie es. Es ist wirklich schön zu benutzen, da es sich in seinem aktuellen Zustand befindet.

Ich habe lange gedacht, dass das hierarchische Protokollierungssystem in log4j / log4cxx überlegen ist, aber Boost.Log hat mich dazu gebracht, anders zu denken. Filterung und Attribute sind viel flexibler.

Das Design der durch Frontend / Backend getrennten Spülen macht es wirklich einfach, zusätzliche Backends hinzuzufügen. Sie müssen sich keine Gedanken über Synchronisierungsprobleme oder Filter machen, die vom Frontend behandelt werden. Die Bibliothek enthält auch bereits viele Backends, Rotationsdateien, Konsole, Syslog, Windows-Ereignisregister usw.

Ich habe meine eigenen Sink-Backends geschrieben. Man geht zur In-Game-Konsole und man geht zu einer Art Benachrichtigungssystem für schwerwiegendere Ereignisse. War einfacher als ich erwartet hatte, hatte es in nur wenigen Minuten zum Laufen gebracht.

Last but not least ist auch der Betreuer / Entwickler sehr hilfreich. In den Projektforen erhalten Sie jede Menge Hilfe. Er hat gerade dieses Wochenende zwei Fehler behoben (davon einen großen), die ich gemeldet habe :-)


21

UPDATE: Ich verwende Boost.Log in einem Game-Engine-System und bin sehr zufrieden damit. Es ist schnell, threadsicher und sehr, sehr flexibel, wenn Sie es brauchen.

Boost.Log sollte in einer kommenden Version dieses Jahres (2013) mit allen Boost-Bibliotheken bereitgestellt werden.


Boost.Log wird erstellt, um ein Protokollsystem darüber einzurichten. Wenn Sie die Dokumentation lesen, werden Sie feststellen, dass sie so flexibel ist, dass jedes Protokollierungssystem, an das Sie denken können, damit erstellt werden kann (wie die Protokollierung auf einem entfernten Computer).

So gibt es Makro Einsatz in einfachen Projekten zu erleichtern , aber ich denke , es ist die Art von Bibliothek, die für Menschen nützlich ist meist die wirklich Protokollierung verstehen und wollen eine bestimmte Architektur für ihre Anwendung erstellen.

In Bezug auf die Leistung erinnere ich mich, dass es bei der Einreichung Probleme gab, die es im Vergleich zu anderen (weniger flexiblen) Protokollierungsbibliotheken langsam machten, aber da es sich um einen Entwurf handelte und die erste Version noch nicht veröffentlicht wurde, würde ich mich nicht darum kümmern, wenn Sie nicht a codieren zeitkritische Anwendung.

Am Ende denke ich, dass es einfach zu "neu" ist, um "jetzt" bewertet zu werden. Es gibt keine andere Protokollierungsbibliothek, die so flexibel ist wie diese, und ich bin mir nicht sicher, ob viele Leute das Bedürfnis haben werden, sie zu verwenden.

Update: Ein kürzlich erfolgter E-Mail-Austausch mit dem Boost.Log-Autor führt zu einigen Daten, die darauf hindeuten, dass tat Boost.Log eindeutig eine hervorragende Alternative für die schnelle Protokollierung ist.


7

Ich habe kürzlich versucht, ein Protokollierungssystem für ein Projekt zu implementieren, das ich gerade gestartet habe.

Ich habe versucht, log4cxx, wie Sie es erwähnen, es ist in der Tat sehr mühsam zu installieren. Ich habe mehrere Stunden gebraucht, um es unter VS2012 (mit anderen Abhängigkeitsbibliotheken ...) zu kompilieren, und dann ist es einfach abgestürzt, als ich es in meinem Projekt verwendet habe. Sicherlich einige seltsame Dinge, die mit nicht übereinstimmenden Standardbibliotheken vor sich gehen, aber ich konnte es nicht herausfinden.

Also wechselte ich zu log4cpp, das ich in wenigen Minuten zum Laufen brachte. Ich finde es elegant und leicht, genau das, was ich brauchte. Es hat den großen Vorteil, die gleichen Funktionen wie das bekannte log4j & co zu haben. Protokollierungssysteme, die ein echtes Plus für Ihre Teamarbeit sein können (Konfiguration über Konfigurationsdatei usw.)

In Bezug auf die Leistung ist ein Funktionsaufruf erforderlich, um zu überprüfen, ob der Protokollierer für die Ebene der Nachricht aktiv ist, und ein Funktionsaufruf, um die Daten tatsächlich zu protokollieren.

Mit ein paar hausgemachten Makros (um LINE & Co. zu Nachrichten hinzuzufügen ) hat sich log4cpp in meinem Projekt wirklich als nützlich erwiesen.

Leider habe ich Boost.Log nicht ausprobiert, kann also nicht darüber sprechen, aber ich hoffe, dass dieses Feedback für Sie weiterhin nützlich ist, wenn Sie sich nicht für Boost.Log entscheiden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.