Log4j kann nicht finden, Eigenschaften, die Datei in einer einfachen Anwendung
Habe ich eine sehr einfache Anwendung, veranschaulicht die Funktion der Protokollierung an. Ich verwende log4j. Aber ich habe einige Probleme mit den Einstellungen. Ich hab die Datei heruntergeladen log4j-1.2.16.jar. Und verbinden Sie es mit mein Projekt durch Eigenschaften -> Java Build Path - > Libraries - > Add External JARs.... Hier meine Klasse:
package ru.log4j.log4jhelloworld;
import org.apache.log4j.Logger;
public class MyClass {
private static final Logger logger = Logger.getLogger(MyClass.class);
public static void main(String[] args) {
logger.info("Hello World!");
}
}
Meine log4j.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="aa %p %c: %m%n"/>
</layout>
</appender>
<!--Root logger-->
<root>
<priority value ="debug" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
Und meine log4j.Eigenschaften:
log4j.rootCategory=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern= %p %c: %m%n
In der Konsole zeigt folgenden Ausnahmen:
log4j:WARN No appenders could be found for logger (ru.log4j.log4jhelloworld.MyClass).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Ich weiß nicht, wie ich sollte, um erstellen und verbinden mit anderen unterstützenden Dateien, wie log4j.xml und log4j.Eigenschaften. Und sicher sein, ob Sie müssen? In welchem Verzeichnis Sie sich befinden sollte? Was soll ich mich auch noch anmelden? Hier ist mein Projekt-Struktur
Bildschirm http://s017.radikal.ru/i433/1202/81/b2739aedc39d.jpg.
Ich vermute, dass der Fehler in diesem. Was ist mein problem? Helfen Sie mir bitte!
mögliche Duplikate von log4j.xml Datei-Platzierung
InformationsquelleAutor Michael | 2012-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um Ihr Problem zu lösen Ort Ihrer log4j-Konfigurationsdatei(d.h.
log4j.xml
oderlog4j.properties
) in dersrc
Ordner und es sollte funktionieren.Außerdem brauchen Sie nicht beide Dateien(
log4j.xml
undlog4j.properties
), verwenden Sie einfach eine von Ihnen.InformationsquelleAutor Kuldeep Jain
Das problem ist, dass die logger-system kann nicht finden, Ihre config-Datei. Um es zu beheben haben Sie mehrere Möglichkeiten:
Wenn Sie brauchen, um zu halten logger config außerhalb von Ihr verpackt Klassen (was Sie normalerweise tun, in der tatsächlichen Produktion system), dann
/etc/my_great_app/log4j.xml
)-Dlog4j.configuration=<path log4j config>
z.B.
-Dlog4j.configuration=file:///etc/my_great_app/log4j.xml
Beachten Sie, dass Pfad-Präfix enthalten muss
file://
.Wenn Sie nicht möchten, dass Ihre log4j-Konfiguration zusammen mit dem code (das ist typisch für unit-tests), dann alles, was Sie tun müssen - stellen Sie nur sicher, dass log4 config Ort ist ein Teil des classpath. Zum Beispiel, wenn Sie mit maven, einfach speichern Sie Ihre
log4j.properties
imsrc/main/resources
VerzeichnisBezüglich Unterschied zwischen
log4j.properties
vslog4j.xml
. Sie sind nur 2 unterschiedliche Möglichkeiten zu definieren, die gleiche Konfiguration für log4j-logger. Sie brauchen nicht beide Dateien, nur entscheiden, welches format Sie gerne und benutze es 🙂InformationsquelleAutor Vladimir Kroz
Führen Sie die Anwendung mit der -Dlog4j.debug-VM-argument, und Sie werden aufgefordert sich mit dem Ort, wo log4j soll es sein.
InformationsquelleAutor javabeangrinder
InformationsquelleAutor Rohit Singh
Ich hatte das ähnliche problem. Und löste es, indem Sie die folgenden Zeilen in der " Ausführen ALS--> Ausführen-Konfigurationen --> Argumente Registerkarte
-Dcvp.property.path=/home/local/Project/property/
--> Lage Ihrer Immobilie DateiDanke!
InformationsquelleAutor programmer
Können Sie Ihre log4j.properties-Datei in einem beliebigen Speicherort in Ihrem Projekt.
Und dann laden Sie Ihre Datei
private static Logger logger = null;
static {
System.setProperty("log4j.configurationFile", "C:\Users\jhaas\Workspace_3.0.30\RestClient\conf\log4j.properties");
}
Ähnlich ist es um die VM-argument in eclipse wie
-Dlog4j.configurationFile=
C:\Users\jhaas\Workspace_3.0.30\RestClient\src\main\resources\log4j.properties
Besserer Ansatz ist, um es in Ihrem code statt der Einstellung in der eclipse-VM-argument.
InformationsquelleAutor Ashish Jha