[
https://issues.apache.org/jira/browse/LOG4J2-2031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16153768#comment-16153768
]
Remko Popma commented on LOG4J2-2031:
-------------------------------------
I haven't looked in great detail, but some initial observations:
* the PatternLayout uses location ( {{%L}} ). This is implemented by walking
the stack trace for every log event. This is [known to be very
slow|https://logging.apache.org/log4j/2.x/performance.html#asyncLoggingWithLocation].
* rollover is configured in the test to be size-based after 20MB, and I suspect
that the test spends a lot of its time doing rollovers. What is measured in
this test is likely very different from the actual logging performance in
your real-life application.
* you can get another small performance boost by using one of the predefined
date formats like {{%d\{DEFAULT\}}}. (These use a highly optimized custom
formatter.)
I need to run your example to see what's causing the reordering.
> Log4j2 log file not reflecting application log function calls
> -------------------------------------------------------------
>
> Key: LOG4J2-2031
> URL: https://issues.apache.org/jira/browse/LOG4J2-2031
> Project: Log4j 2
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 2.8.2, 2.9.0
> Environment: Windows, Sun Java 8.
> Reporter: Colin McDowell
> Fix For: 2.9.1
>
> Attachments: CapacityTest.java, log4j2.xml, pom2.xml
>
> Original Estimate: 672h
> Remaining Estimate: 672h
>
> Was hoping to move our numerous J2EE projects from Log4j to Log4j2 for the
> performance improvements. I put together a small test case that writes a
> string pattern to a Rolling File. There is a 6 digit sequence number at the
> start of the log message. This allows me to quickly see if all the log
> requests are making it into the log file. I attach the test case and
> log4j2.xml. The log4j2.xml uses an asynchronous appender.
> What I observe in the output log file is that after a short interval (120 or
> so entries) the logged are appearing in the wrong order, and entries can be
> missing. The missing entries issues especially shows up when rolling to the
> next log file.
> Perhaps there is a deliberate decision to not to guarantee log file
> accurately for speed. However we need the logs to accurately reflect what
> the application is logging. I have also noticed the performance is 25% worse
> in Log4j2 than Log4j when not using the asynchronous appender. So that
> rather kills us using Log4j2 at the moment.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)