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