我开始将slf4j
与log4j2
一起使用,但问题如下。pom文件中我错了什么或缺少什么?
Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: org/apache/logging/log4j/spi/AbstractLoggerAdapter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
...
我的pom.xml:
<dependencies>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.3</version>
</dependency>
</dependencies>
我非常简单的代码:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Study {
static Logger LOGGER = LoggerFactory.getLogger(Study.class);
public static void main(String... args) {
LOGGER.info("hello world");
}
}
我不知道原因是什么,但如果我使用2.11。2、它起作用了
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.2</version>
</dependency>
尝试对来自一个group pId的所有库使用相同的版本:
...
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.13.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.3</version>
</dependency>
...
此外,您还可以尝试在没有org的情况下运行。slf4j
依赖项。启动前运行mvn clean install
。
问题内容: 因此,我尝试按照其网站上的此(非Maven实现)和要求将slf4j添加到log4j。并尝试使用此代码 并将以下内容添加到我的库中 log4j-api-2.3.jar log4j-core-2.3.jar log4j-sl4j-impl-2.3.jar log4j-to-sl4j-2.3.jar slf4j-api-1.7.12.jar 当我尝试运行它时,出现以下错误 知道我要去哪里错了
我一直在尝试遵循这个网站和其他网站上的食谱,了解如何将log4j2 FileAppender实例添加到使用SLF4J API进行整体日志记录的类中,但我运气不佳。有人能告诉我下面的代码哪里出错了吗? assertTrue语句通过,因此文件由FileAppender创建,但assertEquals失败,因为日志线的长度为零(即日志文件没有内容)。 有什么想法吗?
SLF4J强制应用程序记录字符串。Log4J2 API支持记录任何CharSequence(如果您想记录文本),但也支持按原样记录任何对象。 Log4j 2 API支持日志记录消息对象、Java 8 lambda表达式和无垃圾日志记录(它在日志记录CharSequence对象时避免创建vararg数组和字符串)。
我试图写一个日志文件使用slf4j与log4j.我可以看到控制台中的日志。但它没有写入日志文件 这是我的log4js属性文件 我已经包括了slf4j-api-1.7。5.jar,slf4j-log4j12-1.7。5和log4j-1.2。8.jar在我的类路径中。 我用下面的方法写日志。 任何帮助我都将不胜感激。谢谢
我想使用slf4j而不是Log4J。我在我的pom.xml中添加了以下依赖项(我对slf4j使用了1.7.25,对log4j2使用了2.10.0): 一切都构建得很好,没有编译错误或缺乏依赖,但我未能在类中指定负责日志程序初始化的配置(log4j2.xml)文件。在这种情况下,它总是打印相同的警告 我搜索了一种提供配置文件的适当方法,结果是: 问题是,在我的例子中,LogManager.getCo
正如我在标题中提到的,我的本地计算机上使用Gradle的项目开始抛出以下错误: 我不知道怎么解决它。 到目前为止我所尝试的; > 删除并安装intellij 以新的回购协议进行尝试 删除gradle缓存 添加了log4j和slf4j库,我在SO上找到了一个解决方案。 如何修复异常:无法实例化SLF4J LoggerFactory? 未能实例化SLF4J LoggerFactory IntelliJ