2014-11-23 163 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