【问题标题】:Log4j2/JPA/Hibernate logging is not workingLog4j2/JPA/Hibernate 日志记录不起作用
【发布时间】:2015-01-21 04:13:51
【问题描述】:

我无法使用 log4j2 制作休眠日志消息。它只记录 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> ...

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>

【问题讨论】:

  • 忘了说hibernate是最新的4.3.7。它使用 jboss 日志记录,根据文档,它应该可以与 log4j2 一起正常工作。

标签: java hibernate logging orm log4j2


【解决方案1】:

带有 jboss-logging 的休眠日志。现在 Hibernate 4.3.7.Final 使用 jboss-logging 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 -->

【讨论】:

  • 其实不需要排除。您只需要包含最新版本,它将优先于旧版本。 :) 顺便说一句,我刚刚为此开了一个 PR:github.com/hibernate/hibernate-orm/pull/902
  • 你是对的!确实我很困惑,因为在排除时“artifactId”放在第一位,而依赖项放在第二位(在 groupId 之后)......认为它是一个不同的组/工件。谢谢@dadoonet,我会编辑它;)
【解决方案2】:

我找到了解决方案。 Hibernate 肯定使用 jboss-logging,所以 hibernate-core 和 hibernate-entitymanager 附带的版本是 3.1.3.GA,当它升级到最新的 3.2.0.Final 一切都开始正常工作了。

【讨论】:

    猜你喜欢
    • 2021-11-19
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    • 2011-12-27
    • 2013-04-27
    相关资源
    最近更新 更多