Apache Log4j2 StrSubstitutor "default variable" 不起作用
Apache Log4j2 StrSubstitutor "default variable" does not work
我正在尝试配置 log4j2 记录器。它使用 Apache StringSubstitutor.
我想将默认根目录设置为“${sys:catalina.home}/webapps/${contextName}/logs/”。如果在 logger.properties 文件中设置了 属性 "userRootpath",应用程序应该使用它。我将其设置为“${bundle:logger:userRootpath}”。
为了实现这一点,我正在尝试使用描述 here 的“:-”变量默认值定界符。
但是如果我将它设置为:
它不起作用
<Property name="defaultCatalinaRootpath">${sys:catalina.home}/webapps/${contextName}/logs/</Property>
<Property name="logDir">${bundle:logger:userRootpath:-${defaultCatalinaRootpath}}</Property>
它总是只需要 ${defaultCatalinaRootpath} 而从不考虑 ${bundle:logger:userRootpath} 尽管 它已在 logger.propetie 中设置。
如果我这样设置目录...
<Property name="logDir">${bundle:logger:userRootpath}</Property>
...或者这个...
<Property name="logDir">${sys:catalina.home}/webapps/${contextName}/logs/</Property>
...它有效,所以这种情况与损坏的属性初始化无关。
我尝试在“:-”结构中以不同方式初始化属性,但对我没有任何作用。
我怎样才能达到预期的效果?
经过一些调试我认为这是一个错误,指定用于“:-”结构内的包变量,我在这里报告它:https://issues.apache.org/jira/browse/LOG4J2-2913
如果您有一些出行的想法,请分享,我将不胜感激。
我正在尝试配置 log4j2 记录器。它使用 Apache StringSubstitutor.
我想将默认根目录设置为“${sys:catalina.home}/webapps/${contextName}/logs/”。如果在 logger.properties 文件中设置了 属性 "userRootpath",应用程序应该使用它。我将其设置为“${bundle:logger:userRootpath}”。
为了实现这一点,我正在尝试使用描述 here 的“:-”变量默认值定界符。 但是如果我将它设置为:
它不起作用<Property name="defaultCatalinaRootpath">${sys:catalina.home}/webapps/${contextName}/logs/</Property>
<Property name="logDir">${bundle:logger:userRootpath:-${defaultCatalinaRootpath}}</Property>
它总是只需要 ${defaultCatalinaRootpath} 而从不考虑 ${bundle:logger:userRootpath} 尽管 它已在 logger.propetie 中设置。
如果我这样设置目录...
<Property name="logDir">${bundle:logger:userRootpath}</Property>
...或者这个...
<Property name="logDir">${sys:catalina.home}/webapps/${contextName}/logs/</Property>
...它有效,所以这种情况与损坏的属性初始化无关。
我尝试在“:-”结构中以不同方式初始化属性,但对我没有任何作用。
我怎样才能达到预期的效果?
经过一些调试我认为这是一个错误,指定用于“:-”结构内的包变量,我在这里报告它:https://issues.apache.org/jira/browse/LOG4J2-2913
如果您有一些出行的想法,请分享,我将不胜感激。