休眠(4.3.11-Final)日志记录未桥接到 log4j2?

Posted

技术标签:

【中文标题】休眠(4.3.11-Final)日志记录未桥接到 log4j2?【英文标题】:Hibernate (4.3.11-Final) logging not bridging to log4j2? 【发布时间】:2016-10-11 05:10:58 【问题描述】:

我们正在从 log4j 迁移到 log4j2。我们使用以下库和日志记录机制:

Tomcat(使用 JULI)、Spring 4.2.0(使用 commons-logging)和 Hibernate 4.3.11-Final(使用 jboss-logging)。

我已成功将 Spring 桥接到 log4j2,但 Hibernate 日志记录不起作用。

根据 Hibernate 文档:

要将 JBoss Logging 与 Log4j2 一起使用,log4j2 jar 还需要在类路径中可用。

我的类路径中有以下与日志记录相关的 jar:

commons-logging-1.2.jar jboss-logging-3.1.3.GA.jar jboss-logging-annotations-1.2.0.Beta1.jar log4j-api-2.6.1.jar log4j-core-2.6.1.jar log4j-jcl-2.6.1.jar log4j-slf4j-impl-2.6.1.jar slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5.jar

任何想法为什么我没有看到预期的结果?

【问题讨论】:

我从我的答案中找到了代码:它可能与Log4j2/JPA/Hibernate logging is not working 重复 【参考方案1】:

hibernate-4附带的jboss-logging版本与log4j2不兼容。

我必须导入 3.3.0.Final 版本(应该从 3.1.4 开始,根据JBLOGGING-94)才能让 hibernate 与 log4j2 一起使用。

如果你使用 maven,这里是一个快捷方式:

<dependency> <!-- version working with log4j2 -->
    <groupId>org.jboss.logging</groupId>
    <artifactId>jboss-logging</artifactId>
    <version>3.3.0.Final</version>
    <scope>runtime</scope>
</dependency>

【讨论】:

以上是关于休眠(4.3.11-Final)日志记录未桥接到 log4j2?的主要内容,如果未能解决你的问题,请参考以下文章

休眠查询(不是 SQL)日志记录

如何使用 log4j2.xml 配置休眠日志记录?

字段更改的休眠审计日志

Spring @QuerydslPredicate 问题

休眠日志显示更新查询,但没有选择

setMaxResults(max_size) 抛出 Sql 命令未正确结束异常