2016-03-01 61 views
1

嘗試使用$ {web:contextPath}查找來創建log4j2配置時效果不錯,直到我嘗試將它用於空contextPath。log4j2 lookup默認值爲空contextPath

如果查找返回空字符串,是否有方法指定默認值?

如果contextPath爲空,我想以某種方式指定默認值。

回答

0

嘗試將其定義爲config中的屬性。

對於XML配置

<Properties> 
    <Property name="contextPath">default value</Property> 
</Properties> 

假設網絡查找過程的工作方式相同的系統屬性查找,那麼它應該退回到在屬性部分中定義如果web查找失敗的值。

+0

我試過了你的建議,但它不起作用:-( – Shadow

+0

尋找'org.apache.logging.log4j.core.lookup.Interpolator.lookup(LogEvent event,String var)',問題是隻有當值爲null時纔會調用回退,但在這種情況下,它只是一個空字符串。 – Shadow

+0

Web查找似乎返回ctx.getContextPath(),所以它完全依賴於ServletContext如何初始化上下文路徑。它的源代碼的MockServletContext構造函數'this.contextPath =「」'我假設你的上下文做了類似的事情。 – alan7678