2014-05-03 19 views
14

Sto eseguendo Spring framework 3.2.2.RELEASE su WildFly 8.0. Sto cercando di ottenere il logging al lavoro. Ho provato a leggere diverse esercitazioni, ma non riesco a ottenere alcun output sulla console o sul log. Sto osservando la console in Eclipse e il log su wildfly/standalone/log/server.log. È gradito qualsiasi aiuto per ottenere il logging in corso.Eclipse, Spring, Wildfly log4j logging

Ecco alcuni pezzi di codice interessante:

src/main/risorse/log4j.xml:

<!-- Appenders --> 
<appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p: %c - %m%n" /> 
    </layout> 
</appender> 

<!-- Application Loggers --> 
<logger name="com.myCompany.myPackage"> 
    <level value="info" /> 
</logger> 
    <!-- 3rdparty Loggers 
     omitted 
    --> 
<!-- Root Logger --> 
<root> 
    <priority value="warn" /> 
    <appender-ref ref="console" /> 
</root> 

wildfly/standalone/configurazione/standalone .xml:

 <subsystem xmlns="urn:jboss:domain:logging:2.0"> 
      <console-handler name="CONSOLE"> 
       <level name="INFO"/> 
       <formatter> 
        <named-formatter name="COLOR-PATTERN"/> 
       </formatter> 
      </console-handler> 
      <periodic-rotating-file-handler name="FILE" autoflush="true"> 
       <formatter> 
        <named-formatter name="PATTERN"/> 
       </formatter> 
       <file relative-to="jboss.server.log.dir" path="server.log"/> 
       <suffix value=".yyyy-MM-dd"/> 
       <append value="true"/> 
      </periodic-rotating-file-handler> 
      <logger category="com.arjuna"> 
       <level name="WARN"/> 
      </logger> 
      <logger category="org.apache.tomcat.util.modeler"> 
       <level name="WARN"/> 
      </logger> 
      <logger category="org.jboss.as.config"> 
       <level name="DEBUG"/> 
      </logger> 
      <logger category="sun.rmi"> 
       <level name="WARN"/> 
      </logger> 
      <logger category="jacorb"> 
       <level name="WARN"/> 
      </logger> 
      <logger category="jacorb.config"> 
       <level name="ERROR"/> 
      </logger> 
      <root-logger> 
       <level name="INFO"/> 
       <handlers> 
        <handler name="CONSOLE"/> 
        <handler name="FILE"/> 
       </handlers> 
      </root-logger> 
      <formatter name="PATTERN"> 
       <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c 
] (%t) %s%E%n"/> 
      </formatter> 
      <formatter name="COLOR-PATTERN"> 
       <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] 
(%t) %s%E%n"/> 
      </formatter> 
     </subsystem> 

src/com/myCompany/pacchetto/mySubpackage/myClass.java

package com.myCompany.myPackage.mySubpackage; 

import org.apache.log4j.Logger; 

public class myClass 
{ 
    private static final Logger log = Logger.getLogger(myClass.class.getName()); 

    public SoccerFeed someMethod() 
    { 
     log.info("******************* someMethod "); 
    } 
} 

SOLUZIONE: Sulla base di risposta di Jame sotto, Per risolvere questo problema in base alla mia messa a punto sopra, ho aggiunto il seguente alla wildfly di standalone.xml, e la registrazione funziona come previsto:

<subsystem xmlns="urn:jboss:domain:logging:2.0"> 
    <use-deployment-logging-config value="false"/> 

risposta

11

io non sono sicuro di come Primavera configura la registrazione, ma penso che fa qualcosa di specifico con log4j. Potrebbe essere necessario disabilitare use-deployment-logging-config a false. Tuttavia, questo configurerà solo la registrazione per la tua distribuzione.

È anche possibile lasciare il file di configurazione log4j.xml fuori dalla distribuzione e utilizzare il sottosistema di registrazione per configurare la registrazione.

+0

Non sono bloccato su log4j. Come registro non è importante, solo la possibilità di accedere è ciò che sto cercando. Sono nuovo di Primavera e Jboss/Wildfly. C'è un modo migliore/preferito per fare il login in questo ambiente? –

+0

IMO è preferibile utilizzare una facciata di registrazione come JBoss Logging o SLF4J. log4j è un gestore log completo che in genere non è necessario in un contenitore poiché il contenitore deve controllare la registrazione. –