我相信Luke是正确的,此问题可能是由Log4j2中的错误引起的。
问题在于,如果
<display-name>web.xml中不存在该元素,则
Log4jServletContextListener负责log4j资源管理的类只能启动,而不能停止log4j。
这意味着在停止或重新启动Web应用程序时不会进行清理。JMX
MBean未注销,但所有线程也未停止,因此Log4j类未卸载。每次重新启动Web应用程序时,泄漏的内存都会增加,因为每个Web应用程序都有自己的类加载器(因此VM将它们视为不同的类)。
现在已在Git master中修复了该错误,该修复程序将成为log4j 2.5发行版的一部分。同时,请
<display-name>在您的web.xml中使用一个元素。



