2014-11-23 73 views
9

我无法用log4j2创建休眠日志消息。它只记录INFO和WARN。另一方面,HikariCP完全适用于这个配置。下面是pom.xml中:Log4j2/JPA /休眠日志不起作用

... <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> ... 

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> 
+0

忘了提及hibernate是最新的4.3.7。它使用jboss日志记录,根据文档,它应该适用于log4j2。 – 2014-11-23 11:22:25

回答

3

我找到了解决办法。 Hibernate肯定使用jboss日志记录,所以与hibernate-core和hibernate-entitymanager一起提供的版本是3.1.3.GA,当它升级到最新的3.2.0时。最终,所有东西都开始正常工作。

19

休眠日志与jboss日志记录。现在休眠4.3.7.Final使用jboss日志记录3.1.3.GA不支持任何绑定与log4j2,但是其最新版本(3.2.0.Final)already does,所以你唯一需要做的就是添加新的:

<!-- 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 --> 
+0

其实,你不需要排除。你只需要包含最新的版本,它将优先于旧版本。 :)顺便说一句,我刚刚为此打开了一个PR:https://github.com/hibernate/hibernate-orm/pull/902 – dadoonet 2015-03-05 12:52:30

+0

你是对的!事实上,我感到困惑,因为在排除“artifactId”首先被放置,而依赖关系放在第二位(在groupId之后)......认为它是一个不同的组/神器。谢谢@dadoonet,我会编辑它;) – robert 2015-03-05 21:32:58