I am not sure how to do this. I am on Eclipse?

Laurent Hasson


-----Original Message-----
From: Volkan Yazıcı <volkan.yaz...@gmail.com> 
Sent: Tuesday, August 3, 2021 01:59
To: Log4J Users List <log4j-user@logging.apache.org>
Subject: Re: Program hangs when terminating on v14.1

Hello Laurent,

Thanks for the report and the reproduction path. Would you be able to hook up a 
profiler and figure out the thread blocking the exit, please?

Kind regards.

On Tue, Aug 3, 2021 at 7:54 AM Laurent Hasson <l...@capsicohealth.com> wrote:

> Hello,
>
> We use Log4J2 as our logging library both in a Web environment (under 
> Tomcat), and in command-line utilities. I have noticed recently that 
> our command-line utilities seem to hang when done: the normal JVM's 
> exit is blocked.
>
> I am on JDK 15 with log4j-web-2.14.1.jar, log4j-core-2.14.1.jar and 
> log4j-api-2.14.1.jar in the classpath.
>
> My configuration is:
> <?xml version="1.0" encoding="UTF-8"?> <Configuration status="info">
>        <Properties>
>               <Property
> name="log-path">C:\Projects\TomcatDevServer\logs\</Property>
>               <Property name="now">${date:yyyy-MM-dd}</Property>
>        </Properties>
>        <Appenders>
>               <RollingFile name="FILES" fileName="${log-path}/capsico.log"
> filePattern="${log-path}/capsico.${now}.%i.log.gz">
>                      <PatternLayout>
>                 <pattern>%d{MMdd.HHmmss.SSS}#%-3t %level{length=1} 
> %15.15c{1}| %m %ex{50}%n</pattern>
>                      </PatternLayout>
>                      <Policies>
>                            <SizeBasedTriggeringPolicy size="100 MB" />
>                      </Policies>
>                      <DefaultRolloverStrategy max="99999"
> compressionLevel="6"/>
>               </RollingFile>
>               <Async name="ASYNC">
>                      <AppenderRef ref="FILES" />
>               </Async>
>               <Console name="Console" target="SYSTEM_OUT">
>                      <PatternLayout>
>                  <pattern>%d{MMdd.HHmmss.SSS}#%-3t %level{length=1} 
> %15.15c{1}| %m %ex{50}%n</pattern>
>                      </PatternLayout>
>         </Console>
>        </Appenders>
>        <Loggers>
>               <Root level="debug">
>             <AppenderRef ref="Console" />
> <!--
>             <AppenderRef ref="ASYNC" />
>             <AppenderRef ref="Console" />
> -->
>               </Root>
>        </Loggers>
> </Configuration>
>
> We switch between console when developing to async in production, thus 
> the two options.
>
> My test program is super simple:
> import org.apache.logging.log4j.LogManager;
> import org.apache.logging.log4j.Logger;
>
> public class Test
>   {
>     protected static final Logger LOG = 
> LogManager.getLogger(Test.class.getName());
>
>     public static void main(String[] args)
>       {
>          LOG.debug("Hello");
>       }
>   }
>
> This program hangs and doesn't exit. If I replace the Log4J2 JARs with 
> v12.1, all works as expected. I checked JDK 8 and JDK 11 with the same 
> behavior.
>
> If I remove the <Async> element, it works, pointing to that capability 
> causing issues. My guess is that a thread is not getting closed and 
> hangs the JVM's normal exist.
>
> I did not see a reference to some API changes from v12 to v14 that 
> would explain this, or maybe I missed something? Or maybe it's a bug?
>
> Thank you,
> Laurent Hasson
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to