GitHub user cakofony opened a pull request: https://github.com/apache/logging-log4j2/pull/164
[LOG4J2-2299] Mixed async loggers no longer forget parameter values Previously each AsyncLoggerConfig would individually enqueue an event on the async delegate disruptor. In practice this caused us to trade reusable message parameters away at the first AsyncLoggerConfig in our path, causing the rest to get an array of nulls. Now we begin by traversing the configuration and logging to all synchronous loggers first, then enqueue the event to the highest level asynchronous logger allowing the asynchronous loggers to be traversed on the background thread. You can merge this pull request into a Git repository by running: $ git pull https://github.com/cakofony/logging-log4j2 LOG4J2-2301 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/logging-log4j2/pull/164.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #164 ---- commit eefef2b841710efa4651e448f0e4a9ff1b54ac3d Author: Carter Kozak <ckozak@...> Date: 2018-04-11T22:53:01Z [LOG4J2-2299] Mixed async loggers no longer forget parameter values Previously each AsyncLoggerConfig would individually enqueue an event on the async delegate disruptor. In practice this caused us to trade reusable message parameters away at the first AsyncLoggerConfig in our path, causing the rest to get an array of nulls. Now we begin by traversing the configuration and logging to all synchronous loggers first, then enqueue the event to the highest level asynchronous logger allowing the asynchronous loggers to be traversed on the background thread. ---- ---