我想弄清楚如何添加一個appender到一個依賴於java系統屬性是給定/設置的記錄器。如何根據java系統屬性有條件地添加log4j2 appender?
所以我們可以說我有一個這樣的基本配置:
<Logger name="myLogger" level="info" additivity="false">
<AppenderRef ref="myAppender1" />
<AppenderRef ref="myAppender2" />
</Logger>
所以現在我想找出一個辦法,如果我提供一個參數-PaddAppender2有條件只會增加第二個附加目的地。類似這樣的:
<Logger name="myLogger" level="info" additivity="false">
<AppenderRef ref="myAppender1" />
<?if (${sys:enableAppender2:-false) == "true"}>
<AppenderRef ref="myAppender2" />
</?if>
</Logger>
我該怎麼做?
我知道我可以例如做出一個屬性(「日誌級別」)這樣的(其中,「信息」是默認的,如果沒有給出該屬性)水平動態:
<Logger name="test" level="${sys:logLevel:-info}" additivity="false">
我看着在documentation for filters,我無法弄清楚。當然,如果過濾器甚至是正確的方式去這裏。