2016-11-03 128 views
1

在Log4j2 appenders中,使用contextPath作爲文件名非常有用,如: filename="/logs/${web:contextPath}.log。這意味着一個日誌配置可以在多個webapps中重用。Log4j2屬性替換

但是,如果contextPath爲/foo/bar,則會創建文件/logs/foo/bar.log。有沒有辦法將contextPath中的/替換爲_,因此文件名是/logs/foo_bar.log

對我來說,這比直接將上下文路徑結構複製到日誌中更有用。我已經閱讀了StringSubstitution文檔,但無論如何也看不到它,但如果有人有解決方案,它會非常有幫助!

回答

0

我不認爲有一種方法可以開箱即用。但是,您可以輕鬆創建一個自定義查找來完成此操作。

從子類別WebLookup開始,並在返回的字符串中用下劃線替換'/'字符。

創建自定義Log4j2查找的示例: 請參閱manual pagethis question

+0

謝謝 - 我會考慮這樣做。 – Mark

+0

Np。讓我知道是否有任何問題。 –