title: How does Log4j 2.x implement lazy argument evaluation?
body: <p>Given the <a href="http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.12.4.2" rel="noreferrer">Java argument evaluation mechanism</a>, how does <strong>Log4j 2.x</strong> implement <a href="https://logging.apache.org/log4j/2.x/performance.html" rel="noreferrer">lazy evaluation</a> when formatting the message with curly brackets "to avoid the cost of parameter construction" when log is disabled?</p>
  
  <p>e.g.</p>
  
  <pre><code>logger.debug("Entry number: {} is {}", i, entry[i]);
  </code></pre>