我发现,我的 hibernate 依赖导致了对 jboss-logging
的依赖。
是否可以切换到我已经在使用的 logback
日志记录?
更新
我试过三个地方设置org.jboss.logging.provider
:
1) 在 Spring 中 Lassing 到 JPA 属性:
.setJpaProperties(additionalProperties());
2) 在 main()
中设置属性:
System.setProperty("org.jboss.logging.provider", "slf4j");
3) 在命令行中设置属性:
-Dorg.jboss.logging.provider="slf4j"
均无效。
我遇到异常:
Caused by: java.lang.ClassNotFoundException: org.jboss.logging.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 32 more
请注意,我已经从依赖项中排除了 jboss 日志记录:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.7.Final</version>
<exclusions>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging-annotations</artifactId>
</exclusion>
</exclusions>
</dependency>
最佳答案
我在 standalone.conf.bat 文件中设置属性:
SET "JAVA_OPTS=%JAVA_OPTS% -Dorg.jboss.logging.provider=slf4j"
Logger.class 可以在 JBOSS_HOME\modules\org\jboss\logging\main 文件夹中的 jboss-logging jar 中找到。该模块默认存在。
我最近遇到了类似的问题。我认为如果您解决 Logger.class 问题,您将面临这个问题。
我遇到了这个异常:
ClassNotFoundException: org.slf4j.LoggerFactory from [Module "org.jboss.logging:main"
我在 JBOSS_HOME\modules\org\jboss\logging\main\module.xml 中添加了对 slf4j 的依赖
<module xmlns="urn:jboss:module:1.1" name="org.jboss.logging">
<resources>
<resource-root path="jboss-logging-3.1.0.GA.jar"/>
</resources>
<dependencies>
<module name="org.jboss.logmanager"/>
<module name="org.slf4j" slot="1.7.5" />
</dependencies>
</module>
关于java - 如何将 Hibernate 从 jboss-logging 切换到 logback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092709/