2014-12-27 145 views
2

提到閱讀ENV屬性的log4j2文件中,我們必須使用$${env:USERNAME}log4j2訪問ENV性能

我發現${env:USERNAME}$仍在工作。

有誰知道我們爲什麼要用$$?!

回答

1

http://logging.apache.org/log4j/2.x/manual/configuration.html手冊頁:

StrLookup處理的一個有趣的特點是,當一個變量 基準每次 變量解決前面的「$」宣稱與多個領先的「$」字符簡單地刪除。在前面的示例中,「路徑」元素在運行時能夠解析變量 。爲了允許這個前綴值被指定爲具有兩個前導'$'字符的 變量。當第一個處理配置文件 時,第一個變量將被簡單地刪除。因此,當Routes元素在運行時被評估,它是變量 聲明「$ {sd:type}」,它導致該事件被檢查爲一個 StructuredDataMessage,如果有一個存在,它的類型爲 屬性的值爲用作路由密鑰。並非所有元素都支持 在運行時解析變量。特別是 的組件會在他們的文檔中調用它。