2016-06-25 16 views
0

Ich arbeite mit Federmvc, Maven, Eclipse Juno. Ich habe ein dynamisches Webprojekt erstellt.log4j Konfiguration zeigt keine Nachrichten Federmvc

Ich möchte log4j verwenden, um Protokollmeldungen in der Konsole und eine Datei anzuzeigen. Ich habe mein Projekt auf dem Server von Eclipse bereitgestellt. Ich habe mein Projekt in Tomcat und Weblogic implementiert. Aber ich sehe meine Nachrichten weder als Konsole noch als Datei. Die Datei ist erstellt und hat Server-Nachrichten, aber nicht meine Nachrichten.

Ich habe die log4j.xml aus einem Tutorial kopiert. Meine Nachrichten sind in der Steuerung. Mein Projekt ist ein dynamisches Webprojekt und ich habe log4.xml in den Ordner java resources/src eclipse gestellt.

Ich weiß es nicht, weil ich keine Nachrichten sehe. Müssen weitere Schritte konfiguriert werden?

Structure-Projekt ist

enter image description here

ich log4j Abhängigkeiten in 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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>PruebaLog</groupId> 
    <artifactId>PruebaLog</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.3</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <warSourceDirectory>WebContent</warSourceDirectory> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>3.2.6.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
      <version>3.2.6.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>3.2.6.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>3.2.6.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>jstl</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.0</version> 
      <scope>provided</scope> 
     </dependency> 

    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.15</version> 
     <exclusions> 
      <exclusion> 
       <groupId>com.sun.jmx</groupId> 
       <artifactId>jmxri</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jdmk</groupId> 
       <artifactId>jmxtools</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.jms</groupId> 
       <artifactId>jms</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    </dependencies> 
</project> 

Mein log4j.xml hinzugefügt ist

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd"> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="Appender1" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-7p %d [%t] %c %x - %m%n"/> 
     </layout> 
    </appender> 

    <appender name="Appender2" class="org.apache.log4j.FileAppender"> 
     <param name="File" value="D:/Logs/SpringMVC2.log" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-7p %d [%t] %c %x - %m%n"/> 
     </layout> 
    </appender> 

    <root> 
     <priority value="INFO"/> 
     <appender-ref ref="Appender1" /> 
     <appender-ref ref="Appender2" /> 
    </root> 

</log4j:configuration> 
+0

'log4j.xml' sollte im Maven' resources' Standardordner sein, nicht 'src'. – ck1

+0

Ich habe keine Ressourcen von Maven, weil mein Projekt ein dynamisches Webprojekt ist. Ich konvertierte mein dynamisches Web-Projekt in Maven-Projekt – user3712581

+0

Wenn "log4j.xml" nicht in Ihrem Laufzeitklassenpfad ist, könnte das sehr gut erklären, warum Sie keine Protokollierungsausgabe sehen. – ck1

Antwort

0

Ihre gesamte Projektstruktur das fehlt Maven Konventionen. Java-Paketordner und -Quelle sollten in src/main/java, Ressourcen wie log4j.xml in src/main/resources und Web-Dateien in src/main/webapp enthalten sein. Auf der Website von Apache Maven finden Sie einen Überblick. Verwenden Sie auch eclipse, um ein Beispielmaven-Webprojekt mit Maven-Archetypen zu erstellen.

+0

Maven hat eine Philosophie der Konvention über die Konfiguration. Anstatt die Konfiguration in Ihre Pom-Datei einzufügen, um den Ordner src auf src zu setzen, sollten Sie diese Konfiguration entfernen und die herkömmlichen Konventionen für src/main und andere Ordner verwenden – Iggs