[ 
https://issues.apache.org/jira/browse/LOG4J2-520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13894265#comment-13894265
 ] 

Andre Bogus commented on LOG4J2-520:
------------------------------------

This Bug has been referenced from LOG4J2-392, which is basically the same with 
async loggers instead of async appenders. With the current snapshot, the 
problems boil down to the same behavior.

What happens is that the shutdown sequence leaves not enough time for async 
{loggers, appenders} to write out the messages that still reside in the {ring 
buffer, queue}. They are just shut down without so much as a warning.

The obvious solution is to allow for a grace period before shutting down async 
{loggers, appenders} and to raise an error (at least a status error message) 
when they fail to flush out all state to disk.

@Remko: Thank you for looking into this.

Regards,
Andre

> RollingRandomAccessFile with Async Appender skip logs
> -----------------------------------------------------
>
>                 Key: LOG4J2-520
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-520
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.0-beta9
>         Environment: JDK 1.6, Eclipse
>            Reporter: JavaTech
>            Assignee: Remko Popma
>
> I have written a sample code which will write DEBUG, INFO , WARN logs in a 
> single flile, I have written a logs in FOR loop printing numbers from 1 to 99.
> sometime it print numbers incomplete sequence, like 1 to 67, 1 to 89 etc.
> log4j2.xml
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <Configuration>
>   <Appenders>
>     <RollingRandomAccessFile name="RollingRandomAccessFile"
>       fileName="logs/app.log" 
> filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log"
>       immediateFlush="false" append="true" ignoreExceptions="false">
>       <PatternLayout>
>         <Pattern>%d %-5p [%t] (%F:%L) - %m%n</Pattern>
>       </PatternLayout>
>       <Policies>
>         <TimeBasedTriggeringPolicy />
>         <SizeBasedTriggeringPolicy size="100KB"/>
>       </Policies>
>     </RollingRandomAccessFile>
>     <Async name="ASYNC" includeLocation="true">
>       <AppenderRef ref="RollingRandomAccessFile" />
>     </Async>
>   </Appenders>
>   <Loggers>
>     <Root level="debug" includeLocation="true">
>       <AppenderRef ref="ASYNC" />
>     </Root>
>   </Loggers>
> </Configuration>
> {code}
> Sample Java Code
> {code}
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
> public class LoggerUtil {
>       public static Logger logger = LoggerFactory.getLogger(LoggerUtil.class);
>       public static void main(String[] args) {
>               System.out.println("start");
>               logger.debug("debug log");
>               logger.info("info log");
>               logger.error("error log");
>               for(int i = 0; i < 99; i++) {
>                       logger.warn("{}",i);
>                       System.out.println("I : - " + i);
>               }
>               logger.error("finish printing logs");
>               System.out.println("end");              
>       }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

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

Reply via email to