2014-11-23 2 views
9

Я не могу делать сообщения журнала спящего режима с log4j2. Он регистрирует только INFO и WARN. С другой стороны, HikariCP отлично работает с этой конфигурацией. Вот pom.xml:Запись журнала Log4j2/JPA/Hibernate не работает

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

Забыл упомянуть, что спящий режим является последним 4.3.7. Он использует ведение журнала jboss, и согласно документам он должен работать нормально с log4j2. –

ответ

3

Я нашел решение. Hibernate определенно использует jboss-logging, поэтому версия, входящая в состав спящего ядра и hibernate-entitymanager, - это 3.1.3.GA, и когда она обновляется до последней версии 3.2.0.Final, все начинает нормально работать.

19

Hibernate logs with jboss-logging. Теперь Hibernate 4.3.7.Final использует jboss-logging 3.1.3.GA, который не поддерживает привязку с log4j2, BUT его последняя версия (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

+0

Вы правы! на самом деле я запутался, потому что за исключение «artifactId» помещается первым, а на зависимостях занимает второе место (после groupId) ... думал, что это другая группа/артефакт. Спасибо @dadoonet, я отредактирую его;) – robert

Смежные вопросы