How to configure hibernate logging using log4j2.xml?

configuration, hibernate, java, log4j2, logging

Solution

As suggested in https://issues.apache.org/jira/browse/LOG4J2-172 you can add system property to force hibernate use slf4j

-Dorg.jboss.logging.provider=slf4j

also log4j-slf4j-impl should be added to classpath

My custom solution: with Spring you can place org.jboss.logging.provider=slf4j in property file

(envConfigLocation is file url)

<bean id="propertyConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
   <property name="location" ref="envConfigLocation" />
   <property name="order" value="1"/>
</bean>

Problem

I recently switched to Apache log4j2, and still can not find a way to configure hibernate logging using log4j2.xml. Because I can not find a way around this problem I still use log4j.properties file explicitly for hibernate. This is not the best solution since my log4j2.xml uses JPA appender (writes logs to db). I do not want to write separate logic for hibernate. Is there a way to configure hibernate logging using log4j2?

Original source

Related problems