webapp (servlet spec 2.5)에서 log4j 2와 MongoDBAppender를 사용하고 있습니다. 내가 웹 애플리케이션을 undeply 때webapp의 Log4j2 : MongoCleaner 스레드가 메모리 누수를 만듭니다.
<Configuration status="warn">
<Properties>
<Property name="MongoDbServer">$${jndi:MongoDB.serverAddress.1.host}:$${jndi:MongoDB.serverAddress.1.port}</Property>
<Property name="MongoDbPassword">$${jndi:MongoDB.password}</Property>
</Properties>
<Appenders>
<NoSql name="databaseAppender">
<MongoDb databaseName="LOGS" collectionName="test"
server="${MongoDbServer}" username="LOGS" password="${MongoDbPassword}" />
</NoSql>
<Async name="Async">
<AppenderRef ref="databaseAppender" />
</Async>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Async" />
</Root>
</Loggers>
</Configuration>
,이 오류 로그가 나타납니다 :
SEVERE: A web application appears to have started a thread named [MongoCleaner665622824] but has failed to stop it. This is very likely to create a memory leak.
어떤 제안 여기 log4j2 구성
<listener>
<listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
</listener>
<filter>
<filter-name>log4jServletFilter</filter-name>
<filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>log4jServletFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
<dispatcher>ASYNC</dispatcher><!-- Servlet 3.0 w/ disabled auto-initialization
only; not supported in 2.5 -->
</filter-mapping>
다음은 web.xml을
?
감사합니다.
완료, https://issues.apache.org/jira/browse/LOG4J2-817 문제가 작성되었습니다. – fmerighi