2012-05-25 3 views
2

Je configure mon application Java EE 6 en prenant comme point de départ le log4j quickstart de Jboss 7.1.JBoss 7 + Hibernate + Log4j

Mes principaux ajouts pom.xml sont:

<dependencyManagement> 
     <dependencies> 
      <!-- Define Log4j dependency and its version --> 
      <dependency> 
       <groupId>log4j</groupId> 
       <artifactId>log4j</artifactId> 
       <version>${log4j.version}</version> 
      </dependency> 
... 
     </dependencies> 
    </dependencyManagement> 

<dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <scope>provided</scope> 
     </dependency> 

version est 1.2.16.

Maintenant, je peux faire:

private static final enregistreur Logger = Logger.getLogger (MacchinarioController.class);

et d'utiliser le journal comme prévu. Bien!

Je n'ai aucun fichier log4j.xml ni .properties.

Maintenant, je veux que Hibernate imprime dans la console toutes les instructions SQL en cours d'exécution, y compris les valeurs de paramètres.

J'ai créé ce log4j.xml et le mettre dans src/main dossier source/ressources:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration> 

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

    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Threshold" value="info"/> 
     <param name="Target" value="System.out"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{ABSOLUTE} [%t] %-5p %c{1} - %m%n"/> 
     </layout> 
    </appender> 

    <appender name="rolling-file" class="org.apache.log4j.RollingFileAppender"> 
     <param name="file" value="Program-Name.log"/> 
     <param name="MaxFileSize" value="1000KB"/> 
     <param name="MaxBackupIndex" value="4"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d [%t] %-5p %l - %m%n"/> 
     </layout> 
    </appender> 
    <logger name="org.hibernate"> 
     <level value="ALL" /> 
    </logger> 

    <root> 
     <priority value ="debug" /> 
     <appender-ref ref="console" /> 
     <appender-ref ref="rolling-file" /> 
    </root> 
</log4j:configuration> 

Mais rien ne montre, où je fais mal?

Répondre

2

Utilisez-vous le jboss-deployment-structure.xml pour exclure la version serveur de log4j?

Si vous démarrez une application à partir de zéro, je ne choisirais certainement pas log4j. Je suis partial à JBoss Logging, mais JBoss Logging, slf4j ou logback sont bien meilleurs que log4j.

Par défaut, JBoss AS 7 utilise JBoss Logging avec JBoss Log Manager. Bien que vous utilisiez simplement JBoss Logging, cela fonctionnerait avec n'importe quel gestionnaire de logs.

Si vous voulez utiliser log4j, n'utilisez pas la configuration de log4j. Ajoutez le consignateur/la catégorie au sous-système de journalisation pour voir les résultats que vous recherchez. Cela dit, dans la prochaine version de JBoss AS 7, votre configuration log4j serait trouvée et fonctionnerait comme vous le souhaitez. Les modifications ont été transmises au upstream.