Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j2/JPA/Hibernate日志记录不工作_Java_Hibernate_Logging_Orm_Log4j2 - Fatal编程技术网

Java Log4j2/JPA/Hibernate日志记录不工作

Java Log4j2/JPA/Hibernate日志记录不工作,java,hibernate,logging,orm,log4j2,Java,Hibernate,Logging,Orm,Log4j2,我无法使用log4j2生成hibernate日志消息。它只记录信息和警告。另一方面,HikariCP与此配置完美配合。以下是pom.xml文件: ... <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2

我无法使用log4j2生成hibernate日志消息。它只记录信息和警告。另一方面,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> ...
。。。
org.apache.logging.log4j
log4j-slf4j-impl
2.1
org.apache.logging.log4j
log4japi
2.1
org.apache.logging.log4j
log4j型芯
2.1
...
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肯定使用jboss日志记录,因此Hibernate core和Hibernate entitymanager附带的版本是3.1.3.GA,当它升级到最新的3.2.0.Final时,一切都开始正常工作。

Hibernate使用jboss日志记录。现在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 -->

org.hibernate
冬眠核心
4.3.7.最终版本
org.jboss.logging
jboss日志
3.2.0.1最终版本

忘了提到hibernate是最新的4.3.7。它使用jboss日志,根据文档,它应该可以与log4j2一起工作。实际上,您不需要排除。您只需要包含最新版本,它将优先于旧版本。:)顺便说一句,我刚刚打开了一个公关:你是对的!事实上,我感到困惑,因为在排除时,“artifactId”被放在第一位,而在依赖项被放在第二位(在groupId之后)…我认为这是一个不同的组/工件。谢谢@dadoonet,我会编辑它;)