[英]Apache Log4j2 StrSubstitutor "default variable" does not work
我正在嘗試配置 log4j2 記錄器。 它使用Apache StringSubstitutor 。
我想將默認根目錄設置為“${sys:catalina.home}/webapps/${contextName}/logs/”。 如果在 logger.properties 文件中設置了屬性“userRootpath”,應用程序應該使用它。 我將其設置為“${bundle:logger:userRootpath}”。
為了實現這一點,我嘗試使用此處描述的“:-”變量默認值定界符。 但是如果我將它設置為:
<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
如果您對如何解決問題有一些想法,請分享,我將不勝感激。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.