Nen*_*vic 11 java orm logging hibernate log4j2
我无法用log4j2制作hibernate日志消息.它仅记录INFO和WARN.另一方面,HikariCP与此配置完美配合.这是pom.xml:
... <dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.1</version>
</dependency> ...
Run Code Online (Sandbox Code Playgroud)
log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d{ABSOLUTE} %5p %c{1}:%L - %m%n"/>
</Console>
</Appenders>
<Loggers>
<!--<Logger name="org.apache.log4j.xml" level="debug"/>-->
<Root level="info">
<AppenderRef ref="STDOUT"/>
</Root>
<Logger name="org.hibernate" level="debug"/>
<Logger name="org.hibernate.SQL" level="debug"/>
<Logger name="com.zaxxer.hikari" level="debug" />
</Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)
rob*_*ert 21
Hibernate使用jboss-logging进行日志记录.现在Hibernate 4.3.7.Final使用jboss-logging 3.1.3.GA,它不支持任何与log4j2的绑定,但它的最后一个版本(3.2.0.Final)已经做了,所以你唯一需要做的就是添加新的那一个:
<!-- HIBERNATE -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.7.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.2.0.Final</version>
</dependency>
<!-- HIBERNATE -->
Run Code Online (Sandbox Code Playgroud)
我找到了解决方案。Hibernate肯定使用jboss-logging,因此hibernate-core和hibernate-entitymanager附带的版本是3.1.3.GA,当它升级到最新的3.2.0.Final时,一切都开始正常工作。