jboss 使用6.1版设置Hibernate日志记录提供程序

s3fp2yjn  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(138)

我使用的是Hibernate 6.1.2。我希望使用默认的JDK日志记录提供程序.According to a documentation for 5.4进行日志记录,可以这样做:

public class TestSL4JBug {
    public static void main(String[] args) {
        System.setProperty("org.jboss.logging.provider", "jdk");
        jakarta.persistence.Persistence.createEntityManagerFactory("myPersistence");        
    }
}

我在较新的文档中寻找类似的解释,但没有找到。
唉,如果我测试上面的最小示例,我会得到:
...

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
MLog initialization issue: slf4j found no binding or threatened to use its (dangerously silent) NOPLogger. We consider the slf4j library not found.

...
对我来说,这看起来像是Hibernate试图加载SLF4J并失败了。当然,我已经找到了指南,说我应该添加SLF4J依赖项,但这不是我想要的。
所以我的问题是:如何将Hibernate 6.1.2配置为使用JDK日志记录?属性是否已更改,或者是否应该使用更好的方法来设置它?

3yhwsihp

3yhwsihp1#

我意识到不是普通的Hibernate导致了这个错误。我也使用了hibernate-spatial,因此也使用了geolatte-geom。这个程序没有使用JBoss日志,而是总是通过SLF 4J。所以即使Hibernate通过JDK日志,SLF 4J仍然被加载。我现在不高兴地添加了slf 4j-jdk 14,错误就消失了。它仍然有更多的层和源代码源,我不满意。但可能比其他编程生态系统中的要少得多。

相关问题