How to configure hibernate logging using log4j2.xml?

被刻印的时光 ゝ 提交于 2021-02-07 12:08:22

问题


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?


回答1:


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>



回答2:


I found an answer to this question at: How to redirect all logs from hibernate and spring to log4j2?

Basically log4j2 doesn't work with Hibernate so you have to use log4j. But you still use your log4j2 configuration. You need the following dependencies and then the magic happens in the background.

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-1.2-api</artifactId>
    <version>2.1</version>
</dependency>
<dependency>
<!--HIBERNATE LOGGER (log4j)-->
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.6</version>
</dependency>



回答3:


It is possible to redirect calls to the log4j-1.x API to the log4j-2.0 implementation. The FAQ about which jars to include explains how to do this. You probably need to remove the old log4j-1.x jar from the classpath when you do this.



来源:https://stackoverflow.com/questions/21144790/how-to-configure-hibernate-logging-using-log4j2-xml

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!