Wo befindet sich der richtige Speicherort für Log4j.properties in einem Eclipse-Projekt?
Wo in meinem Eclipse-Projekt, sollte ich hinzufügen, dass die log4j.properties
- Datei, so dass es wie beabsichtigt funktioniert?
InformationsquelleAutor der Frage Srinivas Reddy | 2011-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie es hinzufügen, wo Sie wollen, wenn Sie führen Sie Ihr Projekt, konfigurieren Sie den Klassenpfad und fügen Sie den Speicherort der log4j.Eigenschaften von Dateien, indem Sie auf:
Ausführen->Konfiguration -> [- classpath tab] -> klicken Sie auf Benutzer-Eingaben -> Erweitert -> Wählen Sie Ordner Hinzufügen -> wählen Sie den Speicherort der log4j.Eigenschaften Datei
und dann -> OK -> ausführen
und es sollte geladen
InformationsquelleAutor der Antwort Charbel
Ist der sicherste Weg, IMO ist die Datei in Ihrem " ausführen/debug config
! Beachten Sie: bei Verwendung der eclipse-launch-Konfigurationen die Spezifikation der
file:
Protokoll ist obligatorisch.In dieser Art und Weise der logger nicht fangen keine Protokollierung.Eigenschaften, die kommen, bevor Sie in den classpath noch, das standardmäßig im JDK.
Bedenken Sie auch, eigentlich log4j.xml die hat eine reichere Ausdrucks-syntax und ermöglichen mehr Dinge (log4j.xml tahe Vorrang vor log4j.Eigenschaften.
InformationsquelleAutor der Antwort Alain Pannetier
Fügen Sie die log4j.Eigenschaften-Datei zur Laufzeit class-path des Projektes.
Einige Leute fügen Sie diese an die Wurzel des source-trees (also, dass es kopiert wird, um die Wurzel des kompilierten Klassen).
Edit:
Wenn Ihr Projekt ist ein maven-Projekt,
Sie können die log4j.Eigenschaften, die in der src/main/resources-Ordner (und src/test/resources für Ihre unit-tests).
Wenn Sie mehrere Umgebungen (zum Beispiel Entwicklung und Produktion),
wollen verschiedene logging für jede Umgebung
und bereitstellen möchten und das gleiche Glas (oder Krieg, oder ear-Datei) für jede Umgebung
(wie in einem build für alle Umgebungen)
dann speichern Sie die log4j.Eigenschaften Datei ausserhalb der jar-Datei und legen Sie es in den class-path für jede Umgebung (konfigurierbar durch die Umwelt).
Historisch gesehen, würde ich einige bekannte Verzeichnis in jede Umgebung in den classpath und Bereitstellung von Umwelt-spezifischen Sachen gibt es.
Zum Beispiel,
~tomcat_user/localclasspath wo ~tomcat_user ist das home-Verzeichnis des Benutzers, ausgeführt werden, wird der tomcat-Instanz, auf die meine war-Datei bereitgestellt wird.
InformationsquelleAutor der Antwort DwB
Ist der beste Weg, um erstellen Sie spezielle Quell-Ordner mit dem Namen
resources
und verwenden Sie es für alle Ressourcen-einschließlich der log4j.Eigenschaften. Also, legen Sie es dort.Auf dem Java-Ressourcen-Ordner, die automatisch erstellt wurde, indem das Dynamische Web-Projekt mit der rechten Maustaste und fügen Sie einen neuen Source Ordner und nennen Sie es "Ressourcen". Dateien hier werden dann exportiert werden, um die war-Datei in den classes-Verzeichnis
InformationsquelleAutor der Antwort AlexR
Wenn Sie eine Bibliothek haben, und Sie möchten, fügen Sie die log4j:
(Ich habe angenommen, dass Sie die log4j-Bibliothek Hinzugefügt.)
PD: Sorry für mein Englisch.
InformationsquelleAutor der Antwort Fabián Plaza Arnau
Diese Frage bereits beantwortethier
Den classpath enthält niemals bestimmte Dateien. Es enthält Verzeichnisse und jar-Dateien. Also, legen Sie die Datei in einem Verzeichnis, dass in Ihrem
classpath
.Log4j
Eigenschaften nicht (normalerweise) in der Entwicklung von apps (es sei denn, du bist Debuggen von Eclipse selbst!). Also, was Sie wirklich wollen zu bauen, die ausführbaren Java-app (Anwendung, KRIEG, OHR oder was auch immer) und beinhalten dieLog4j
Eigenschaften in den Laufzeit-classpath.InformationsquelleAutor der Antwort Javascript is GOD
Setzen
log4j.properties
in den Laufzeit-classpath.Diese forum zeigt einige posts über mögliche Wege, es zu tun.
InformationsquelleAutor der Antwort Matt Ball
Im Allgemeinen lege ich es in einen speziellen Ordner "res" oder "Ressourcen wie bereits sagte, aber für die web-Anwendung, kopiere ich die
log4j.properties
mit der ant-Aufgabe zu den WEB-INF/classes-Verzeichnis. Es ist die gleiche, wie die Vermietung der Datei an der Wurzel des src/- Ordner, aber in der Regel ich bevorzuge, um zu sehen, es in einen eigenen Ordner.Mit Maven, den gewohnten Platz zu stellen, ist in dem Ordner
src/main/resources
als beantwortet in diesem anderen post.Alle Ressourcen gehen in das build-in der root-classpath (z.B.
target/classes/
)Wenn Sie möchten, eine leistungsfähige logger haben, können Sie auch einen Blick auf slf4j-Bibliothek was ist ein logger-Fassade und nutzen Sie die log4j-Implementierung, die hinter dem.
InformationsquelleAutor der Antwort рüффп
Ich bin herauszufinden, dass der Speicherort der log4j.Eigenschaften-Datei hängt von der Art des Eclipse-Projekts.
Insbesondere für eine Eclipse Dynamic Web Project, die meisten der Antworten, die beinhalten das hinzufügen der log4j.Eigenschaften, um die war-Datei, die eigentlich nicht die Eigenschaften hinzufügen, Datei in der richtigen Lage besonders für Tomcat/Apache.
Hier einige meiner Forschung und meine Lösung für das Problem (wieder speziell für ein Dynamisches Web-Projekt und läuft auf Tomcat/Apache 6.0)
Finden Sie in diesem Artikel, wie Kater das laden von Klassen. Es ist anders als die normale class loader von Java. (https://www.mulesoft.com/tcat/tomcat-classpath) Beachten Sie, dass es sieht nur an zwei Orten in der war-Datei WEB-INF/classes und WEB-INF/lib.
Beachten Sie, dass mit einem Dynamic Web Project, es ist nicht klug, zu speichern .Eigenschaften Datei im build/../classes-Verzeichnis, dieses Verzeichnis gelöscht wird, Wann immer Sie reinigen-erstellen Sie Ihr Projekt.
Tomcat nicht behandelt .property-Dateien im Verzeichnis WEB-INF/lib Lage.
Können Sie nicht speichern Sie die log4j.properties-Datei im src-Verzeichnis, Eclipse abstracts Verzeichnis Weg aus Ihrer Sicht.
Die eine Möglichkeit, die ich gefunden habe, zu beheben, dies zu ändern erstellen und fügen Sie ein zusätzliches Verzeichnis, dass irgendwann laden in das WEB-INF/classes-Verzeichnis in eine war-Datei. Speziell....
(1) Rechtsklick auf das Projekt im Projekt-explorer, wählen Sie " Neu " ->'Ordner'. Sie können den Namen für den Ordner alles, aber der standard ist in diesem Fall "Ressourcen". Der neue Ordner erscheinen soll auf der root-Ebene Ihres Projektes.
(2) Bewegen Sie die log4j.Eigenschaften-Datei in diesen neuen Ordner.
(3) rechtsklicken Sie auf das Projekt erneut und wählen 'Build-Pfad'->'Configure Build Path'. Wählen Sie die Registerkarte "Quellen". Klicken Sie auf 'Ordner Hinzufügen' - button. Suchen Sie nach der neuen Ordner, den Sie erstellt haben in Schritt (1) oben. Wählen Sie "OK".
(4) zurück auf das eclipse Projekt-Explorer-Ansicht beachten Sie, dass der Ordner hat nun bewegt, um die 'Java Resources" - Bereich (dh es ist nicht mehr an der Wurzel durch eclipse-Präsentation-Abstraktion).
(5) Reinigen Sie bauen Ihr Projekt.
(6) um Zu überprüfen, dass die .properties-Datei existiert jetzt auch in WEB-INF/classes in Ihrer war-Datei, exportieren Sie eine war-Datei in eine einfache Lage (Rechtsklick Projekt -> Exportieren -> Krieg-Datei) und Check-out der Inhalt. Beachten Sie, dass die log4j.Eigenschaften-Datei wird jetzt in das WEB-INF/classes.
(7) Fördern Sie Ihr Projekt auf Tomcat/Apache und beachten Sie, dass log4j funktioniert jetzt.
Nun, dass log4j funktioniert, starten Sie die Protokollierung, lösen die Probleme der Welt, nehmen Sie sich eine Auszeit und genießen Sie ein leckeres alkoholisches Getränk.
InformationsquelleAutor der Antwort Robert Bender
Sie wollen nicht zu haben, die log4j.Eigenschaften verpackt, die Sie mit Ihrem Projekt einsetzbaren -- das ist eine schlechte Idee, wie die anderen Poster erwähnt haben.
Finden Sie die Tomcat-root-installation von Eclipse auf, wenn es läuft Ihre Anwendung, und fügen Sie die log4j.properties-Datei in der richtigen Stelle. Für Tomcat 7, der richtige Ort ist
${TOMCAT_HOME}/lib
InformationsquelleAutor der Antwort Erica Kane