Ich betrachte eine log4j2.xml
Konfiguration von Spring-Boot und sehen Sie die folgende Konfiguration (unwichtige Teile entfernt):
<Property name="PID">????</Property>
<Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
<Property name="LOG_LEVEL_PATTERN">%5p</Property>
<Property name="LOG_PATTERN">
... %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta}
... %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}
</Property>
Werfen wir einen Blick: ${LOG_LEVEL_PATTERN}
ist klar, es löst auf die in der Zeile oben definierte Eigenschaft auf. Aber die nächsten zwei Variablenerweiterungen haben ein sys:
Präfix, was genau macht das?
Noch wichtiger, wer macht die Auflösung dieser Variablen (insbesondere sys:
)? Ist es Log4j2 spezifisch? Ist diese Erweiterung von Maven oder vielleicht die Spring Framework, die ich verwende?