Ich habe jetzt seit ungefähr zwei Wochen versucht, eine Protokollbibliothek zu bekommen, mit der ich arbeiten kann. Ich habe Log4cxx, Log4cpp, log4cplus und boost.log ausprobiert. Das Problem ist nicht, dass nichts davon für mich funktioniert, sondern dass ich nicht herausfinden kann, wie ich sie überhaupt zur Arbeit bringen kann. Ich würde log4cxx wirklich gerne verwenden, da ich mit log4j / logback arbeite, aber ich konnte keine der Bibliotheken, die auf log4j basieren, erstellen. Ich konnte die Boost-Bibliothek erstellen und verwenden, aber boost.log gibt mir alle Arten von Linker-Fehlern, egal, was ich versuche. Wenn mir jemand eine Schritt-für-Schritt-Anleitung geben könnte, um eine dieser Bibliotheken zum Laufen zu bringen, würde ich das sehr schätzen. Außerdem verwende ich Eclipse als meine IDE, wenn das wichtig ist.
Hast du das jemals funktioniert? Log4cxx funktioniert definitiv unter Win7. Vielleicht könnten Sie einige Ihrer Build-Fehler veröffentlichen. Nur raten, vielleicht haben Sie Ihr Eclipse-Projekt nicht so konfiguriert, dass es sich mit einer statischen log4cxx-Lib verbindet.
Boost.Log funktioniert für mich ganz gut (Linux und Windows). Es ist keine Header-Bibliothek, es gibt einen kompilierten Teil, mit dem Sie verlinken müssen. Siehe Anweisungen hier .
Es hängt auch von anderen Boost-Bibliotheken ohne Header ab:
Die Protokollierungsbibliothek verwendet mehrere andere Boost-Bibliotheken, die benötigt werden auch bauen. Dies sind Boost.Filesystem, Boost.System, Boost.DateTime, Boost.Thread und Boost.Regex. Siehe ihre Dokumentation für detaillierte Anweisungen zum Bauablauf.
Abhängig von Ihrer Plattform kann es vorgefertigte Versionen der Boost-Bibliotheken geben. Ansonsten ist es einfach, es selbst zu bauen, wenn Sie den Anweisungen folgen. Wenn Sie nicht weiterkommen, aktualisieren Sie Ihre Frage, wo genau Sie stecken geblieben sind und was Sie sehen.
Ich würde Pantheios empfehlen. Es dauert einige Zeit, um alles beim ersten Download zu erstellen - tippe make build test
und geh zum Mittagessen - und du musst die Ausgabeströme (Pantheios nennt sie "Backends") zur Verbindungszeit auswählen, aber für das Codieren ist es wirklich einfach zB
Es wurde von Grund auf für Geschwindigkeit entwickelt - das Alter wird nicht in eine Zeichenkette umgewandelt, es sei denn, die "DEBUG" -Ebene ist eingeschaltet - und Robustheit - was Deshalb können Sie grundlegende Typen nicht direkt übergeben und verwenden "Einfüger" (zB pantheios::integer
). Weitere Informationen finden Sie in diesem aktuellen Blogpost von Pantheios 'Autor.
Ich habe es geschafft, log4cxx zum Laufen zu bringen, dies wurde in Visual Studios 2013 unter Windows 7 OS gemacht.
Folgendes habe ich Schritt für Schritt gemacht:
Laden Sie das log4cxx ZIP-Paket herunter, extrahieren Sie den Inhalt Ссылка
Download apr und apr-util ZIP-Pakete, Ссылка
Dann
- extrahieren Sie manuell diese Zip apr-1.2.11-win32-src.zip (die Der extrahierte Ordner sollte "apr" heißen, wenn er nicht manuell umbenannt wird es)
- extrahieren Sie manuell diese Zip apr-util-1.2.10-win32-src.zip (die extrahierter Ordner sollte "apr-util" heißen, wenn es nicht manuell ist benenne es um)
- Öffnen Sie eine Eingabeaufforderung und führen Sie Folgendes aus: cd apache-log4cxx-0.10.0 konfigurieren (diese führt configure.bat)
ausWir müssen die Nutzung der APR ICONV und LDAP Unterstützung deaktivieren. Dazu fügen wir folgende Dateien manuell an:
- Öffnen Sie apr-util \ include \ apu.hw. Finde die Zeile, die mit "#define" beginnt APU_HAVE_APR_ICONV ". Ändern Sie den Wert in 0 und speichern Sie.
- Öffnen Sie apr-util \ include \ apr_ldap.hw. Finde die Zeile, die mit beginnt "#define APR_HAS_LDAP" Ändern Sie den Wert auf 0 und speichern Sie
Wir müssen die log4cxx.dll erstellen, um * .dsw zu konvertieren zu * .cxproj.
- Starten Sie Visual Studio 2013 und öffnen Sie log4cxx.dsw.
- VS wird fragen, ob Sie alles konvertieren wollen. Klicken Sie einfach auf Ja. Möglicherweise gibt es im Migrationsbericht einige Warnungen, aber nichts sollte verhindern, dass sich die Lösung öffnet.
& gt; Die Projekte xml, apr und apr-util sollten erfolgreich erstellt werden.
Wenn Sie versuchen, das log4cxx-Projekt zu kompilieren, wird es am meisten wahrscheinlich scheitern mit Hunderten von Fehlern. Dies liegt an einem Fehler in VC ++ was kann man umgehen.
- Verschiebe alle Makros außerhalb (über) der Klasse, in der sie sich befinden. LOG4CXX_LIST_DEF Makro wird verwendet, um Klassen zu definieren. Alle Makros, die in Fehler C2252 gemeldet wurden, müssen aus allen Klassen entfernt werden. Dies kann auch bewegliche Definitionen enthalten, die im Makro verwendet werden.
- Als nächstes ändern Sie LoggingEvent :: KeySet in KeySet (das ist nicht mehr in einer Elternklasse verschachtelt)
& gt; Danach sollte das log4cxx-Projekt nun kompiliert werden erfolgreich auf Ihrem Computer.