当前位置: 首页 > 知识库问答 >
问题:

Log4j2 log4j-核

龙德润
2023-03-14

我在2.2.5版本的pom.xml中添加了spring-boot-starter-log4j2依赖项。我试图将org.apache.logging.log4j.log4j-core的版本从2.12.1更改为2.13.3,但是,这样做会出现运行时异常。我查看了其他解决方案,这些解决方案建议可能包含了两次log4j jar。我无法通过排除这一点来解决这个错误。此运行时异常仅在org.apache.logging.log4j.log4j-core版本更改时发生。更改spring-boot-starter-log4j2中包含的其他api的版本不会导致任何异常。我错过了什么?pom.xml...

  <!-- Add Log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.3</version>
</dependency>

...依赖项树依赖项树运行时异常...

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.logging.log4j.util.PropertiesUtil.getStringProperty([Ljava/lang/String;Ljava/lang/String;Lorg/apache/logging/log4j/util/Supplier;)Ljava/lang/String;
at org.apache.logging.log4j.core.util.BasicAuthorizationProvider.<init>(BasicAuthorizationProvider.java:45)
at org.apache.logging.log4j.core.config.ConfigurationFactory.authorizationProvider(ConfigurationFactory.java:216)
at org.apache.logging.log4j.core.config.ConfigurationFactory.getInstance(ConfigurationFactory.java:189)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:687)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:708)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:263)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:243)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:174)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:648)
at com.vzw.jitrjis.StartUp.<clinit>(StartUp.java:22)

...

共有1个答案

赫连骏
2023-03-14

类路径中有两个版本的log4j jar。这会导致类路径冲突。Log4j可能包含在具有传递依赖关系的类路径中。如果要标识多个JAR,请尝试查看依赖项树。如果您使用的是maven,就像运行这个命令一样简单。

mvn dependency:tree
 类似资料:
  • 问题内容: 我正在使用Spring Data的审计功能,并且具有与此类似的类: 现在,我相信我已经配置好了审核功能,因为当我更新域对象时,可以看到createdBy,createdDate,lastModifiedBy和lastModifiedDate都获得了正确的值。 但是,我的问题是,当我更新对象时,我丢失了createdBy和createdDate的值。因此,当我第一次创建该对象时,我具有所

  • 问题内容: 首先,我了解到我想像这样进行上转换是不寻常的,但是请耐心等待。我们是通过网站导出获取这些csv文件的,我们没有选择以其他任何形式获取它的选项。 现在,进入一个问题: 我有这个旧代码,可以为我完成此过程。它基本上读取每一行,然后选择s 之间的每个值。这对于我转换的某些样本效果很好,但是当归结为使用给定的样本时,某些值就不合适了。 我在Notepad ++中打开文件,并意识到某些单元格本身

  • 问题内容: 我听到很多人说volatile关键字在多核处理器中比单核处理器更有意义,但不知道原因。我试图谷歌,但在这方面没有帮助。有什么理由吗? 根据我的理解,无论是多核还是单处理器,volatile关键字都应具有同等的重要性。原因是volatile,它保证该值将在主内存(堆)中更新,而不是将其保留在所有线程都可以看到的线程本地内存(堆栈)中。那么,无论是多核还是单处理器,它有何不同? 问题答案:

  • 问题内容: 有人可以提供解释,说明当JVM仅是Linux上的单个进程时,Java多线程程序(例如Tomcat servlet容器)如何能够使用CPU的所有内核?有没有很好的深入文章详细介绍了该主题? 编辑#1 :我不是在寻找有关如何在Java中实现多线程程序的建议。我正在寻找有关JVM如何在Linux / Windows上内部管理以使用多个内核而仍是OS上的单个进程的解释。 编辑#2 :我设法找到

  • 问题内容: 我正在阅读Java教程,其中提到在具有单个处理器的计算机中不会发生实际的多线程。它提到OS为Java进程分配了指定的时间量,并且JVM线程调度程序选择了用于在短时间内一次运行一个线程的线程。 我有一台笔记本电脑使用哪个四核处理器- 是否可以通过在每个核中运行一个线程来以编程方式更快地运行多线程程序?我之所以问这个问题,是因为书中提到只有一个真正的多处理器系统才能同时执行多项操作。 问题

  • 本文向大家介绍请你为网易BoBo的手机直播产品,提出可行性建议。然后根据其中核心页面画出原型和使用流程。请写出一个文档,内容包括第一产品分析概要、运营建议;第二原型图,即手绘主要页面即可、以及用户使用流程。相关面试题,主要包含被问及请你为网易BoBo的手机直播产品,提出可行性建议。然后根据其中核心页面画出原型和使用流程。请写出一个文档,内容包括第一产品分析概要、运营建议;第二原型图,即手绘主要页面

  • 本文向大家介绍介绍一款你常用的内容阅读APP,并分析他的最核心功能、满足的需求、超预期的功能以及竞争优势和发展趋势相关面试题,主要包含被问及介绍一款你常用的内容阅读APP,并分析他的最核心功能、满足的需求、超预期的功能以及竞争优势和发展趋势时的应答技巧和注意事项,需要的朋友参考一下 36氪 为互联网创业者和从业者提供媒体资讯的新媒体平台。 最核心功能:媒体资讯内容分发 满足的需求:互联网从业者生活

  • 本文向大家介绍目前在互联网领域,人工智能无疑是当下的热点之一。请任选一款你熟悉的人工智能领域产品,列举它的目标用户、核心功能和商业模式。相关面试题,主要包含被问及目前在互联网领域,人工智能无疑是当下的热点之一。请任选一款你熟悉的人工智能领域产品,列举它的目标用户、核心功能和商业模式。时的应答技巧和注意事项,需要的朋友参考一下 小爱音箱(小爱同学),个人感觉人工智能技术目前还是要落地到硬件产品上。。