Affichage des valeurs des paramètres dans les log hibernate

Bonjour,

J’étais confronté à un problème depuis un moment pour afficher la valeur des paramètres passés dans les requêtes hibernate. Dans les logs, je ne voyais que des points d’interrogations qui n’ont franchement aucune valeur ajoutée.

Je suis tombé aujourd’hui sur cette Jira Hibernate : http://opensource.atlassian.com/projects/hibernate/browse/HHH-2835. Grâce à celle-ci, je viens de résoudre mon problème et peut être cette solution pourra aider certaines personnes.

Pour résumer, il y a incompatibilité entre certaines versions de log4j et certaines versions d’Hibernate et dans ce cas le paramètre org.hibernate.type n’a plus aucune utilité. Pour solutionner le problème, il suffit de suivre ces 4 étapes :

  • Remplacer dans le fichier log4j la catégorie org.hibernate.type par org.hibernate.type.workaround
  • Dans le fichier HibernateContext.xml, ajouter à la description du bean sessionFactory une dépendance sur un bean hibernate-type-logging-workaround :
  • Ajouter le bean hibernate-type-logging-workaround au fichier HibernateContext.xml
  • Ecrire la classe LogHibernateHelper de la manière suivante :

package com.test.logger; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class LogHibernateHelper { public LogHibernateHelper() { Log workaroundLog = LogFactory.getLog("org.hibernate.type.workaround"); Log typeLog = LogFactory.getLog("org.hibernate.type"); if (workaroundLog instanceof org.apache.commons.logging.impl.Log4JLogger && typeLog instanceof org.apache.commons.logging.impl.Log4JLogger){ org.apache.log4j.Logger log4jWorkaroundLogger = (org.apache.log4j.Logger) ((org.apache.commons.logging.impl.Log4JLogger)workaroundLog).getLogger(); org.apache.log4j.Logger log4jTypeLogger = (org.apache.log4j.Logger) ((org.apache.commons.logging.impl.Log4JLogger)typeLog).getLogger(); log4jTypeLogger.setLevel(log4jWorkaroundLogger.getLevel()); } } }

 
De cette manière on obtient des logs beaucoup plus utiles puisqu’on a non seulement les valeurs des paramètres mais aussi les valeurs retournées.
 
 

Vous avez trouvé cette publication utile? Cliquer sur
Ippon
Ippon est un cabinet de conseil en technologies, créé en 2002 par un sportif de Haut Niveau et un polytechnicien, avec pour ambition de devenir leader sur les solutions Digitales, Cloud et BigData.

Ippon accompagne les entreprises dans le développement et la transformation de leur système d’information avec des applications performantes et des solutions robustes.

Ippon propose une offre de services à 360° pour répondre à l’ensemble des besoins en innovation technologique : Conseil, Design, Développement, Hébergement et Formation.

Nous avons réalisé, en 2016, un chiffre d’affaires de 24 M€ en croissance organique de 20%. Nous sommes aujourd’hui un groupe international riche de plus de 300 consultants répartis en France, aux USA, en Australie et au Maroc.
FRANCE Website LinkedIn