如何修复异常:无法实例化SLF4J LoggerFactory?

问题描述 投票:0回答:5

我正在尝试使用 jena 库为语义网络编写一个 java 网络爬虫。我已经使用 Netbeans 构建了项目。我收到两个错误:

  1. 实例化SLF4J LoggerFactory失败 报告异常: java.lang.NoClassDefFoundError: org/apache/log4j/Level

  2. 无法初始化类 com.hp.hpl.jena.rdf.model.impl.ModelCom 在 org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)

我已经包含了

slf4j-api
slf4j-log
这两个库。

java log4j slf4j
5个回答
11
投票

您还应该包含

log4j
库,因为
slf4j-log4j
只是一个静态活页夹。


7
投票

您应该在类路径中包含

slf4j-api-x.x.x.jar
slf4j-simple-x.x.x.jar


2
投票

我尝试了所有排列和组合,但最终 slf4j-api-slf4j-simple- 效果很好。


0
投票

如错误提示:

实例化失败SLF4JLoggerFactory

您需要将相应的

slf4j-*-*.jar
绑定文件放入您的 classpath 文件夹中。

如果存在,您可以通过

locate slf4j
找到它们。

从 SLF4J 版本 1.6.0 开始,如果在类路径上找不到绑定,则 slf4j-api 将默认为无操作实现,丢弃所有日志请求。

雄猫

如果使用 Tomcat,您可以将这些文件复制到

/usr/share/tomcat7/lib
或您的 webapp 文件夹
/var/lib/tomcat7/webapps/*/WEB-INF/lib

索尔

如果您正在使用 Solr 或者您想使用其中的文件(默认情况下包含),您可以在

dist/solrj-lib
example/lib/ext
中找到它们。


请参阅:Java 简单日志记录外观 (SLF4J) 用户手册


0
投票

就我而言,当我向项目中添加 module-info.java 时,发生了

Failed to instantiate SLF4J LoggerFactory
。解决方案是将这两行添加到我的 module-info.java 文件中:

requires org.apache.logging.log4j;
requires org.apache.logging.log4j.core;

如果它可以帮助像我一样遇到这个问题的人。

© www.soinside.com 2019 - 2024. All rights reserved.