簡體   English   中英

Apache Log4j2 StrSubstitutor“默認變量”不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM