【问题标题】:Log4j runtime exception upon updating from 1.2.17 to 2.17.1从 1.2.17 更新到 2.17.1 时出现 Log4j 运行时异常
【发布时间】:2022-01-07 22:44:11
【问题描述】:

我已从 log4j-1.2.17 升级到 log4j-2.17.1,并进行了必要的代码更改。代码构建良好,没有错误。我在构建路径和 WEB-INF 路径中包含了正确的 jar 文件(仅 log4j-api-2.17.1.jar 和 log4j-core-2.17.1.jar)。

部署到 Tomcat 8.x 版本后,在日志文件中看到 404 错误并出现以下异常。尝试过项目清理、tomcat 清理、重建等,但没有成功。

任何指针?

提前致谢。

    INFO: Starting Servlet Engine: Apache Tomcat/8.5.61
Jan 07, 2022 4:24:29 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Jan 07, 2022 4:24:31 PM org.apache.catalina.core.StandardContext filterStart
**SEVERE: Exception starting filter [authfilter]
java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger;**
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
    at java.lang.Class.getDeclaredFields(Class.java:1916)
    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:110)
    at org.apache.catalina.core.DefaultInstanceManager.populateAnnotationsCache(DefaultInstanceManager.java:403)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:173)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:106)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4538)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5181)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
    ... 18 more

Jan 07, 2022 4:24:31 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more Filters failed to start. Full details will be found in the appropriate container log file

【问题讨论】:

标签: struct log4j log4j2 tomcat8 runtimeexception


【解决方案1】:

你可能需要他的依赖 sl4j to log4j 适配器

"org.apache.logging.log4j" name="log4j-slf4j-impl" rev="2.17.0" 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-21
    • 2023-03-06
    • 2020-03-29
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    相关资源
    最近更新 更多