[ https://issues.apache.org/jira/browse/LOG4J2-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14042104#comment-14042104 ]
Ilya Tepikin commented on LOG4J2-323: ------------------------------------- Remko, I have {code} <context-param> <param-name>Log4jContextSelector</param-name> <param-value>org.apache.logging.log4j.core.async.AsyncLoggerContextSelector</param-value> </context-param> {code} in web.xml and {code} ... <Loggers> <Root level="debug"> <AppenderRef ref="RollingRandomAccessFile" level="debug"/> </Root> </Loggers> ... {code} in log4j2.xml. log4j2*.jar files are located in WEB-INF/lib of my web app. If I remove AsyncLoggerContextSelector from my web.xml and change log4j2.xml to {code} ... <Loggers> <AsyncRoot level="debug" includeLocation="false"> <AppenderRef ref="RollingRandomAccessFile" level="debug"/> </AsyncRoot> </Loggers> ... {code} I'll get an error: {code} ERROR An exception occurred processing Appender RollingRandomAccessFile java.lang.NullPointerException at org.apache.logging.log4j.core.pattern.NameAbbreviator$MaxElementAbbreviator.abbreviate(NameAbbreviator.java:182) at org.apache.logging.log4j.core.pattern.NamePatternConverter.abbreviate(NamePatternConverter.java:53) at org.apache.logging.log4j.core.pattern.LoggerPatternConverter.format(LoggerPatternConverter.java:64) at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36) at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:209) at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:52) at org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:45) at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:118) at org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.append(RollingRandomAccessFileAppender.java:96) at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97) at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:423) at org.apache.logging.log4j.core.async.AsyncLoggerConfig.asyncCallAppenders(AsyncLoggerConfig.java:117) at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:222) at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:207) at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:133) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) {code} Am I doing something wrong? PS I;m using log4j2 rc1. > ThreadLocal-leak on tomcat shutdown when using async logging > ------------------------------------------------------------ > > Key: LOG4J2-323 > URL: https://issues.apache.org/jira/browse/LOG4J2-323 > Project: Log4j 2 > Issue Type: Bug > Affects Versions: 2.0-beta9 > Environment: Mac OS X 10.8.4, Tomcat 7.0.42, java version 1.6.0_51 > Reporter: Michael Kloster > Priority: Minor > Labels: Async > Fix For: 2.0-rc1 > > > When shutting down Tomcat 7.0.42, catalina.out displays the following warning > indicating a memory leak: > {code} > Jul 28, 2013 9:55:59 AM org.apache.coyote.AbstractProtocol start > INFO: Starting ProtocolHandler ["http-bio-8080"] > Jul 28, 2013 9:55:59 AM org.apache.coyote.AbstractProtocol start > INFO: Starting ProtocolHandler ["ajp-bio-8009"] > Jul 28, 2013 9:55:59 AM org.apache.catalina.startup.Catalina start > INFO: Server startup in 841 ms > Jul 28, 2013 9:56:09 AM org.apache.catalina.core.StandardServer await > INFO: A valid shutdown command was received via the shutdown port. Stopping > the Server instance. > Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol pause > INFO: Pausing ProtocolHandler ["http-bio-8080"] > Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol pause > INFO: Pausing ProtocolHandler ["ajp-bio-8009"] > Jul 28, 2013 9:56:09 AM org.apache.catalina.core.StandardService stopInternal > INFO: Stopping service Catalina > Jul 28, 2013 9:56:09 AM org.apache.catalina.loader.WebappClassLoader > checkThreadLocalMapForLeaks > SEVERE: The web application [/asynclog] created a ThreadLocal with key of > type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@648bfdea]) and a > value of type [org.apache.logging.log4j.core.async.AsyncLogger.Info] (value > [org.apache.logging.log4j.core.async.AsyncLogger$Info@4e26d560]) but failed > to remove it when the web application was stopped. Threads are going to be > renewed over time to try and avoid a probable memory leak. > Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol stop > INFO: Stopping ProtocolHandler ["http-bio-8080"] > Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol stop > INFO: Stopping ProtocolHandler ["ajp-bio-8009"] > Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol destroy > INFO: Destroying ProtocolHandler ["http-bio-8080"] > Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol destroy > INFO: Destroying ProtocolHandler ["ajp-bio-8009"] > {code} > {code:xml|title=log4j2.xml|borderStyle=solid} > <?xml version="1.0" encoding="UTF-8"?> > <configuration status="WARN"> > <appenders> > <FastRollingFile name="MyFileLog" filename="logs/my.log" > filePattern="logs/my-%d{COMPACT}.log"> > <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" /> > <Policies> > <SizeBasedTriggeringPolicy size="5MB" /> > </Policies> > </FastRollingFile> > <Console name="Console" target="SYSTEM_OUT"> > <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" /> > </Console> > </appenders> > <loggers> > <logger name="mylogger" level="INFO" additivity="false"> > <appender-ref ref="MyFileLog" /> > </logger> > <root level="TRACE"> > <appender-ref ref="Console" /> > </root> > </loggers> > </configuration> > {code} > {code:title=log4j2.xml|borderStyle=solid} > #!/bin/bash > CATALINA_OPTS=-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector > {code} -- This message was sent by Atlassian JIRA (v6.2#6252) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org