1
嘗試使用$ {web:contextPath}查找來創建log4j2配置時效果不錯,直到我嘗試將它用於空contextPath。log4j2 lookup默認值爲空contextPath
如果查找返回空字符串,是否有方法指定默認值?
如果contextPath爲空,我想以某種方式指定默認值。
嘗試使用$ {web:contextPath}查找來創建log4j2配置時效果不錯,直到我嘗試將它用於空contextPath。log4j2 lookup默認值爲空contextPath
如果查找返回空字符串,是否有方法指定默認值?
如果contextPath爲空,我想以某種方式指定默認值。
嘗試將其定義爲config中的屬性。
對於XML配置
<Properties>
<Property name="contextPath">default value</Property>
</Properties>
假設網絡查找過程的工作方式相同的系統屬性查找,那麼它應該退回到在屬性部分中定義如果web查找失敗的值。
我試過了你的建議,但它不起作用:-( – Shadow
尋找'org.apache.logging.log4j.core.lookup.Interpolator.lookup(LogEvent event,String var)',問題是隻有當值爲null時纔會調用回退,但在這種情況下,它只是一個空字符串。 – Shadow
Web查找似乎返回ctx.getContextPath(),所以它完全依賴於ServletContext如何初始化上下文路徑。它的源代碼的MockServletContext構造函數'this.contextPath =「」'我假設你的上下文做了類似的事情。 – alan7678