log4j in einfache java-maven-Projekt
Habe ich einfaches java-Projekt. Ich verwalte meine Abhängigkeiten mit maven. Ich fügte hinzu, log4j dependency in meinem pom.xml
Nun will ich nutzen
package com.abc.xyz;
import org.apache.log4j.Logger;
/**
* Hello world!
*
*/
public class App
{
static final Logger logger = Logger.getLogger(App.class);
public static void main( String[] args )
{
logger.debug("Hello world!");
}
}
Habe ich meine log4j.Eigenschaften Datei im resources-Ordner.
Wenn ich die App als Java-Anwendung bekomme ich folgenden Fehler.
log4j:WARN No appenders could be found for logger (com.abc.xyz.App).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
So, meine Frage ist wie machen die Laufzeitumgebung weiß, dass meine log4j.Eigenschaften Datei im resources-Ordner.
BEARBEITEN
Hier ist meine pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc.xyz</groupId>
<artifactId>learning</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>learning</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
und hier ist meine log4j.Eigenschaften Datei
# Define the root logger with appender file
log4j.rootLogger = DEBUG
können wir Ihre pom.xml bitte
InformationsquelleAutor riship89 | 2013-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Setzen der system-property
log4j.configuration
den Laufzeit-Pfad der Datei. Diese kann getan werden, in den Anwendungs-launcher. Etwas in dieser Art, vorausgesetzt, Ihre Konfigurations-Datei wird in das Stammverzeichnis von Ihrem Arbeitsverzeichnis (da Sie sagte, dass Ihre Datei ist in src/main/resources maven, verschieben Sie Sie in das Stammverzeichnis)Aber ich muss sagen, wenn die Datei wirklich aufgerufen log4j.Eigenschaften und es ist wirklich in src/main/resources sollten Sie diese Einstellung nicht benötigen, da log4j Aussehen wird, dafür gibt es standardmäßig
In Ihrem
Run COnfigurations
für die app, gehen Sie auf die Argumente der Registerkarte und in der VM Argumente-Abschnitt geben Sie die Konfiguration, die ich erzählte Ihnen, verweisen aber auf den tatsächlichen Speicherort der DateiDas habe ich versucht. Die genaue gleichen Sache. Sogar mit absoluten Pfad. Ich bin immer dieselbe Fehlermeldung.
fügen Sie diese Eigenschaft -Dlog4j.debug druckt einige log4j-info erzählen Sie, wo er erwartet, dass die Datei unter andere nützliche Dinge
InformationsquelleAutor Hilikus
Ich meine modifizierten App-Klasse wie folgt:
InformationsquelleAutor riship89
Sollten Sie log4j.Eigenschaften unter
src/main/resources
Ordner der Projekte zu vermeiden, die Warnung oder stellen Sie die Datei Pfad mit-Dlog4j.configuration=<FILE_PATH>
InformationsquelleAutor Sam
ändern Sie Ihre pom.xml Abhängigkeit für log4j:
sehen, ob es funktioniert
InformationsquelleAutor Satya