That is strange: with the async appender (and also with async loggers), Log4j2 should automatically flush the I/O buffer when the async queue is empty... You may have found an issue. Can you raise a JIRA ticket for this?
Meanwhile, you can add attribute immediateFlush="true" to your Rolling file appender configuration. (See also https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender ) On Thu, Nov 23, 2017 at 11:42 PM, Laurent Hasson <l...@capsicohealth.com> wrote: > Hello all, > > I have the following configuration file using async appenders. It works > well but I have one issue. During low-volume activity on my site, it seems > that nothing is output to the file, so it's hard to see what's going on. > Same issue happens while developing. But as soon as enough activity occurs, > then the logs are flushed to the file as expected. I suspect there is a > buffer somewhere that only gets flushed when it's full, and so during low > activity, that may take a while. Is there a way to control that so that > flushing happens more often, wither by sizing the buffer to be smaller, or > maybe some timeout value, i.e., flush at least once every 5s? > > <?xml version="1.0" encoding="UTF-8"?> > <Configuration status="info"> > <Properties> > <Property name="log-path">C:\Projects\TomcatDevServer\logs\</ > Property> > <Property name="now">${sys:startup}</Property> > </Properties> > <Appenders> > <RollingFile name="FILES" fileName="${log-path}/loga.log" > filePattern="${log-path}/logs.${now}.%i.log.gz"> > <PatternLayout> > <pattern>%d{MMdd.HHmmss.SSS}#%-3t %level{length=1} > %15.15c{1}| %m%ex{20}%n</pattern> > </PatternLayout> > <Policies> > <SizeBasedTriggeringPolicy size="100 MB" /> > </Policies> > <DefaultRolloverStrategy max="99999" > compressionLevel="6"/> > </RollingFile> > <Async name="ASYNC"> > <AppenderRef ref="FILES" /> > </Async> > </Appenders> > <Loggers> > <Root level="debug"> > <AppenderRef ref="ASYNC" /> > </Root> > </Loggers> > </Configuration> > > > Thank you, > > > Laurent Hasson > > >