2013-07-25 2 views
0

Tout d'abord, merci de prendre le temps de lire ma question.journalisation des requêtes hibernate avec log4j lors de l'utilisation du filtre de servlet pour la session ouverte dans le modèle de vue

Je vais commencer par mon environnement: Primefaces 3.5 Hibernate 4.3.2 Glassfish 3.1.2

Mon problème est le suivant: Je veux connecter les requêtes sql mise en veille prolongée n'utilisant log4j (et les paramètres liés à ces requêtes). La journalisation a fonctionné jusqu'à ce que j'ai décidé d'implémenter le modèle Open Session in View. Maintenant, les journaux contiennent uniquement les informations de ce filtre (comme "Démarrer une transaction de base de données", etc.).

Mon log4j.xml ressemble à ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > 
<log4j:configuration> 
    <appender name="production" 
       class="org.apache.log4j.rolling.RollingFileAppender">       
     <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 

      <param name="ActiveFileName" value="app.log"/> 
      <param name="FileNamePattern" value="app.log.%d{yyyy-MM-dd}.gz" /> 

     </rollingPolicy> 

     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
        value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n" /> 
     </layout> 
    </appender> 

    <appender name="debugfile" 
       class="org.apache.log4j.rolling.RollingFileAppender"> 
     <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 

      <param name="ActiveFileName" value="debug.log"/> 
      <param name="FileNamePattern" value="debug.log.%d{yyyy-MM-dd}.gz" /> 

     </rollingPolicy>   

     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
        value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n" /> 
     </layout>   
    </appender> 

    <appender name="hibernatefile" 
       class="org.apache.log4j.rolling.RollingFileAppender"> 

     <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 

      <param name="ActiveFileName" value="hibernate.log"/> 
      <param name="FileNamePattern" value="hibernate.log.%d{yyyy-MM-dd}.gz" /> 

     </rollingPolicy> 


     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
        value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n" /> 
     </layout> 
    </appender> 


    <logger name="org.hibernate.type" additivity="false"> 
     <level value="TRACE" /> 
     <appender-ref ref="hibernatefile"/> 
    </logger> 

    <logger name="org.hibernate.SQL" > 
     <level value="DEBUG" /> 
     <appender-ref ref="hibernatefile"/> 
    </logger> 


    <logger name="org.hibernate"> 
     <level value="info"/> 
     <appender-ref ref="hibernatefile" /> 
    </logger> 

    <root>   
     <appender-ref ref="debugfile" /> 
     <appender-ref ref="production" />   
    </root> 
</log4j:configuration> 

La trace, d'informations et d'autres informations de mise en veille prolongée ne sont pas imprimés partout.

Merci pour votre aide,

Andrei

Répondre

0

Ok, donc je pense que je suis arrivé à une conclusion sur cette question. Il n'y a pas de problème avec la combinaison de ces technologies et/ou modèles mais avec la version d'Hibernate. J'ai utilisé Hibernate 3 auparavant et la journalisation s'est bien déroulée, mais selon cette documentation http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html/ch03.html#configuration-logging en commençant par Hibernate 4.0, ils ont abandonné slf4j en tant que façade de journalisation et ils sont passés à la journalisation JBoss. De ce lien (https://community.jboss.org/wiki/Logging) il semble que JBoss logging a une variante qui utilise log4j mais malheureusement je n'ai pas réussi à configurer l'ensemble de l'environnement pour utiliser la journalisation JBoss au lieu de slf4j. Pour mon application, je suis revenu à Hibernate 3 et la journalisation se passe très bien.

S'il y a quelqu'un qui a utilisé Hibernate 4 avec JBoss logging et log4j et a quelques exemples de configuration, je pense qu'il serait apprécié par beaucoup de gens car je n'ai trouvé aucune information pertinente dans mes recherches.

Nous vous remercions pour toute information pertinente que vous pourriez avoir.

Questions connexes