2014-09-03 95 views
1

我一直在寻找解决方案的小时。如何更改Hibernate4中的日志记录级别?

如何将Hibernate 4.3.6中的日志记录级别更改为DEBUG?

在官方documentation中提到,

完全过时了。 Hibernate从4.0开始使用JBoss Logging。这将在我们将此内容迁移到开发人员指南时得到记录。

我还没有在开发指南中找到任何东西,所以我假设他们甚至没有开始记录它。

Stackoverflow后here根本没有帮助我。我使用Hibernate 4作为独立的库,我不关心任何Maven,JBoss或其他任何可能存在XML文件的东西。

是否有某处有关如何在最新版本的Hibernate中更改调试级别的综合教程?

+0

对不起,但这不是重复。另一篇文章根本没有解决任何问题。只有一些JBoss代码的链接,但没有真正的解决方案。 – Jagger 2014-09-04 06:51:23

+0

OP对使用SLF4J不感兴趣,他们只是想改变日志级别。 – Raedwald 2014-12-16 21:13:56

回答

3

首先,抱歉忽视了这个问题。我会马上删除评论。

我认为他们已经迁移了指南,但忘记了更新页面。注意新userguide说:

这仍然是一个正在进行的工作。帮助是绝对受欢迎的!

Logging Guide指出,“这主要是JBoss的日志记录的开创性的文档,因为JBoss的记录目前提供没有自己的文档。”很遗憾。

但也有一些有用的技巧:

首先,JBoss的记录将寻找一个系统的关键org.jboss.logging.provider,可设置为以下值之一设置:
-jboss
-jdk
-log4j2
-log4j
-slf4j

接下来,JBoss的记录将寻找一个JDK服务(见FO的javadoc详细信息请参见java.util.ServiceLoader)以获取其“提供者”合约(org.jboss.logging.Provider)。如果多个可用,它将使用ClassLoader返回的第一个。

如果您想使用由另一个日志记录库支持的JBoss Logging,则需要将它们的库放在类路径中。之后,您可以使用相关的配置文件(logback.xml,log4j.properties等)来定义您的日志级别org.hibernate

+0

谢谢,我会尽力做到这一点。 – Jagger 2014-09-04 06:51:56

+0

谢谢! 许多依赖关系在传递过程中会带来他们的记录器,所以我们需要排除它们(在intellij的想法中,您可以很容易地看到依赖关系带来了记录器库,在maven中添加排除项) – Pleymor 2017-03-03 16:02:06

0

看看this post可以帮助你解决问题。我早先在那里面对同样的问题创建了这个帖子。通过放置log4j.properties并将slf4j jar文件放在classpath中解决了我的问题。我也在用Hibernate 4.3.6

+0

不幸的是,这不起作用。把'slf4j'和'log4j.properties'不改变任何东西。 Hibernate 4.3.6加载的是'jboss-logging-3.1.3.GA.jar',它包含这个Hibernate版本的默认记录器。 – Jagger 2014-09-03 18:11:08

+0

不好意思再问一次,你有没有试过?因为我也使用'Hibernate 4.3.6',它对我很有用。 – Chaitanya 2014-09-03 18:12:45

相关问题