我正在将现有的Struts应用程序2.3.34迁移到2.5.16。 我已经使用升级所需的最小分布的所有库更新了我的项目。 在Server(Tomcat 8.5)启动时,我在控制台中看到ERROR: 错误StatusLogger Log4j2找不到日志记录实现。请将log4j-core添加到类路径中。使用SimpleLogger登录控制台...... 看起来他们缺少log4j-core lib吗? 如果有人遇到过类似的问题,或者我遗漏了什么,请告诉我。
谢谢!
答案 0 :(得分:0)
最新版本的struts 2(V2.5.16)使用log4j2 jar。您可以参考here了解更多详情。如果您的webapp中已经有log4j2,请尝试将其更新为latest version。
答案 1 :(得分:0)
我遇到了这个问题。由于struts 2.5.16使用log4j2,因此我们必须将其添加到类路径中。一旦将其添加到项目中,因为有了log4j.xml文件,所以我没有得到struts日志。
所以我开始迁移应用程序日志和休眠日志,但是在某些时候它不起作用。
简单的解决方法是将整个项目迁移到log4j2 使用log4j-to-slf4j适配器jar,这将使您的struts模块可以与现有slf4j实现一起使用。我做了以下pom更改:
<dependency>
<!--Defining not to use the log4j-api -->
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts.ver}</version>
<exclusions>
<exclusion>
<artifactId>org.apache.commons</artifactId>
<groupId>commons-lang3</groupId>
</exclusion>
<exclusion>
<artifactId>log4j-api</artifactId>
<groupId>org.apache.logging.log4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency> <!-- Redirecting from log4j2 to slf4j -->
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>2.10.0</version>
</dependency>
请参阅this page中的“ log4j-slf4j适配器jar”