title: How is the following property resolved ${sys:foo} by Log4j2
body: <p>I am looking at a <code>log4j2.xml</code> configuration from Spring Boot and see the following configuration (unimportant parts removed):</p>
  
  <pre><code>&lt;Property name="PID"&gt;????&lt;/Property&gt;
  &lt;Property name="LOG_EXCEPTION_CONVERSION_WORD"&gt;%xwEx&lt;/Property&gt;
  &lt;Property name="LOG_LEVEL_PATTERN"&gt;%5p&lt;/Property&gt;
  &lt;Property name="LOG_PATTERN"&gt;
      ... %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta}
      ... %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}
  &lt;/Property&gt;
  </code></pre>
  
  <p>Lets take a look: <code>${LOG_LEVEL_PATTERN}</code> is clear, it resolves to the property defined in the line above. But The next two variable expansions have a <code>sys:</code> prefixed, what exactly does that do?</p>
  
  <p>More importantly who does the resolution of these variables (in particular <code>sys:</code>)? Is it Log4j2 specific? Is this expansion done by <strong>Maven</strong> or maybe the <strong>Spring Framework</strong> which I am using?</p>