文章目录
- 问题一 升级后看Maven Dependencies中还是有依赖1.x的log4j
- 问题二 web.xml配置不对
项目原来的log4j版本是1.2.14,有漏洞需要升级到2.18.0.
问题一 升级后看Maven Dependencies中还是有依赖1.x的log4j
原因是有关联依赖, 项目中别的jar库有依赖低版本的log4j, 通过删去pom文件中的dependency并不能解决问题,我们还需要exclusions来进行排除依赖。
例如这样一个情况,工程中引入了A,A依赖B,但是B的版本过旧。
操作:鼠标右键Maven Dependencies中对应的老的log4j库,Maven–>Exclude Maven …
,重新build即可。
问题二 web.xml配置不对
报错:Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
操作:把org.springframework.web.util.Log4jConfigListener 修改成org.apache.logging.log4j.web.Log4jServletContextListener;
web.xml配置如下:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j2.xml</param-value>
</context-param>
<listener>
<listener-class>
<!-- org.springframework.web.util.Log4jConfigListener -->
org.apache.logging.log4j.web.Log4jServletContextListener
</listener-class>
</listener>