Hi Ralph, I think that adding -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector to make all loggers asynchronous has solved this problem.
Thanks, Joan. -----Mensaje original----- De: Ralph Goers [mailto:ralph.go...@dslextreme.com] Enviado el: viernes, 28 de septiembre de 2018 18:41 Para: Log4J Users List Asunto: Re: Flush in RollingRandomAccessFile 1. The relevant appenders are listed below? If so, they are stopping correctly. Are they asynchronous? Can you provide the log4j2.xml? 2. I think the failure to shutdown the thread has been reported. It wouldn’t be causing your problem though. Ralph > On Sep 28, 2018, at 9:17 AM, Joan Balagueró - ventusproxy > <joan.balagu...@ventusproxy.com> wrote: > > Hi Ralph, > > Below the trace when tomcat is stopped: > > 28-Sep-2018 18:14:36.251 INFORMACIÓN [main] > org.apache.catalina.core.StandardServer.await Se ha recibido un comando de > apagado a través del puerto de apagado. Parando la instancia del Servidor. > 28-Sep-2018 18:14:36.252 INFORMACIÓN [main] > org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler > ["http-nio-80"] > 28-Sep-2018 18:14:36.302 INFORMACIÓN [main] > org.apache.catalina.core.StandardService.stopInternal Parando servicio > [Catalina] > 2018-09-28 18:14:36,974 localhost-startStop-2 DEBUG Stopping > LoggerContext[name=3e73c8d6, > org.apache.logging.log4j.core.LoggerContext@64df2b5a]... > 2018-09-28 18:14:36,976 localhost-startStop-2 DEBUG Appender > CLUSTER_LOG stopped with status true > 2018-09-28 18:14:36,977 localhost-startStop-2 DEBUG Appender > SYSTEM_LOG stopped with status true > 2018-09-28 18:14:36,977 localhost-startStop-2 DEBUG Appender > MONITOR_LOG stopped with status true > 2018-09-28 18:14:36,977 localhost-startStop-2 DEBUG Appender ERROR_LOG > stopped with status true > 2018-09-28 18:14:36,977 localhost-startStop-2 DEBUG Appender > ACCESS_LOG stopped with status true > 2018-09-28 18:14:36,977 localhost-startStop-2 DEBUG Log4j2 > ConfigurationScheduler shutting down threads in > java.util.concurrent.ScheduledThreadPoolExecutor@7b51e3ab[Running, > pool size = 5, active threads = 0, queued tasks = 5, completed tasks = > 0] > 2018-09-28 18:14:36,977 localhost-startStop-2 DEBUG Stopped > XmlConfiguration[location=/home/ventusproxy/app/ROOT/WEB-INF/log4j.xml > ] OK > 2018-09-28 18:14:36,978 localhost-startStop-2 DEBUG Stopped > LoggerContext[name=3e73c8d6, > org.apache.logging.log4j.core.LoggerContext@64df2b5a] with status true > 2018-09-28 18:14:36,978 localhost-startStop-2 DEBUG Log4jServletFilter > destroyed. > 2018-09-28 18:14:36,979 localhost-startStop-2 DEBUG > Log4jServletContextListener ensuring that Log4j shuts down properly. > 28-Sep-2018 18:14:36.984 ADVERTENCIA [localhost-startStop-2] > org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The > web application [ROOT] appears to have started a thread named > [Log4j2-TF-7-Scheduled-6] but has fail ed to stop it. This is very likely to > create a memory leak. Stack trace of thread: > sun.misc.Unsafe.park(Native Method) > java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject. > awaitNanos(AbstractQueuedSynchronizer.java:2078) > java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take > (ScheduledThreadPoolExecutor.java:1093) > java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take > (ScheduledThreadPoolExecutor.java:809) > java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.jav > a:1074) > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j > ava:1134) > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. > java:624) > java.lang.Thread.run(Thread.java:748) > 28-Sep-2018 18:14:37.025 INFORMACIÓN [main] > org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler > ["http-nio-80"] > 28-Sep-2018 18:14:37.055 INFORMACIÓN [main] > org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler > ["http-nio-80"] > > Thanks, > > Joan. > > -----Mensaje original----- > De: Ralph Goers [mailto:ralph.go...@dslextreme.com] > Enviado el: viernes, 28 de septiembre de 2018 18:00 > Para: Log4J Users List > Asunto: Re: Flush in RollingRandomAccessFile > > That all sounds correct to me. I would suggest you add status=“DEBUG” to the > configuration element in your log4j2.xml and see what happens during shutdown. > > Ralph > >> On Sep 28, 2018, at 8:57 AM, Joan Balagueró - ventusproxy >> <joan.balagu...@ventusproxy.com> wrote: >> >> Hello, >> >> The jars we have in our app are: log4j-1.2-api-2.11.1.jar, >> log4j-api-2.11.1.jar, log4j-core-2.11.1.jar and log4j-web-2.11.1.jar. >> >> Are the right jars, or may I add something else? >> >> Thanks, >> >> Joan. >> >> -----Mensaje original----- >> De: Joan Balagueró - ventusproxy >> [mailto:joan.balagu...@ventusproxy.com] >> Enviado el: jueves, 27 de septiembre de 2018 18:20 >> Para: 'Log4J Users List' >> Asunto: RE: Flush in RollingRandomAccessFile >> >> It seems my web.xml is ok. It's a servlet 3.1 with tomcat 8.5.32. I only >> have this context parameter, necessary for a correct log4j startup: >> >> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee >> http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" >> version="3.1"> >> >> <display-name>ventusproxy</display-name> >> <description>ventusproxy</description> >> >> <context-param> >> <param-name>isLog4jContextSelectorNamed</param-name> >> <param-value>true</param-value> </context-param> >> >> <context-param> >> <param-name>log4jContextName</param-name> >> <param-value>ventusproxy</param-value> >> </context-param> >> >> ( ... ) >> >> Joan. >> >> >> -----Mensaje original----- >> De: Ralph Goers [mailto:ralph.go...@dslextreme.com] >> Enviado el: jueves, 27 de septiembre de 2018 18:05 >> Para: Log4J Users List >> Asunto: Re: Flush in RollingRandomAccessFile >> >> That depends on what servlet version you are using. Take a look at >> http://logging.apache.org/log4j/2.x/manual/webapp.html >> <http://logging.apache.org/log4j/2.x/manual/webapp.html>. >> >> Ralph >> >>> On Sep 27, 2018, at 9:02 AM, Joan Balagueró - ventusproxy >>> <joan.balagu...@ventusproxy.com> wrote: >>> >>> Hi Ralph, >>> >>> After adding the log4j-web-2.11.1.jar to our app, it doesn't work yet. >>> >>> Do I need to add something to the web.xml file, or some environment >>> variable? >>> >>> Thanks, >>> >>> Joan. >>> >>> -----Mensaje original----- >>> De: Ralph Goers [mailto:ralph.go...@dslextreme.com] >>> Enviado el: jueves, 27 de septiembre de 2018 17:33 >>> Para: Log4J Users List >>> Asunto: Re: Flush in RollingRandomAccessFile >>> >>> Are you using the log4j-web jar? It is supposed to handle this. >>> >>> Ralph >>> >>>> On Sep 27, 2018, at 8:14 AM, Joan Balagueró - ventusproxy >>>> <joan.balagu...@ventusproxy.com> wrote: >>>> >>>> Hello, >>>> >>>> >>>> >>>> After sending thousands of requests to our app, we stop the sender >>>> and the log file appears like below: >>>> >>>> >>>> >>>> 1,54.38.179.175,2018-09-27 >>>> 16:55:51.618,A,13,A,39,A,72,A,120,N,,54.38.179.182:8080,g,8457,403, >>>> 6 >>>> 8 >>>> 3 >>>> ,58,ok >>>> ,2018-09-27 16:55:51.677 >>>> >>>> 1,54.38.179.17 >>>> >>>> >>>> >>>> Now we stop tomcat (when our app is running). And it seems the >>>> queue of pending events is not flushed, so the log remains like >>>> above. Our log configuration is: >>>> >>>> >>>> >>>> <RollingRandomAccessFile name="ACCESS_LOG" >>>> fileName="${sys:log.dir}vproxy_access" >>>> filePattern="${sys:log.dir}vproxy_access.%d{yyyy-MM-dd}" append="true" >>>> immediateFlush="false"> >>>> >>>> <PatternLayout> >>>> >>>> Pattern>%m%d{yyyy-MM-dd HH:mm:ss.SSS}%n</Pattern> >>>> >>>> </PatternLayout> >>>> >>>> <Policies> >>>> >>>> <CronTriggeringPolicy schedule="0 0 0 * * ?" evaluateOnStartup="true" >>>> /> >>>> >>>> </Policies> >>>> >>>> </RollingRandomAccessFile> >>>> >>>> >>>> >>>> <Logger name="LOGGER_ACCESS" level="info" includeLocation="false" >>>> additivity="false"> >>>> >>>> <AppenderRef ref="ACCESS_LOG"/> >>>> >>>> </Logger> >>>> >>>> >>>> >>>> >>>> >>>> Can we tell log4j2 to flush these pending lines when we shutdown our app? >>>> >>>> >>>> >>>> Thanks, >>>> >>>> Joan. >>>> >>>> >>>> >>> >>> >>> >>> -------------------------------------------------------------------- >>> - To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>> >>> >>> >>> >>> -------------------------------------------------------------------- >>> - To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>> >>> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >> For additional commands, e-mail: log4j-user-h...@logging.apache.org >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >> For additional commands, e-mail: log4j-user-h...@logging.apache.org >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org