2013-04-10 82 views
0

我想從setenv.bat中的值填充accesslogvalve中的「dir」。 例如:使用accesslogvalve dir的環境變量

<Valve 
className="org.apache.catalina.valves.AccessLogValve" 
directory="${my.logs.dir}" 
prefix="access_log" 
fileDateFormat="yyyy-MM-dd.HH" 
suffix=".log" 
pattern="%t %H cookie:%{SESSIONID}c request:%{SESSIONID}r %m %U %s %q %r"/> 

我在setenv.bat規定 「my.logs.dir」

set my.logs.dir=C:\xyz\abc

當我啓動Tomcat,我看到一個文件夾$ {my.logs.dir }在tomcat下安裝。問題是,當tomcat啓動時,$ {my.logs.dir}不會被env變量所取代。如果我給硬編碼價值如dir="C:\xyz\abc",它工作正常。

任何人都可以指導我用服務器啓動時的環境值替換$ {my.logs.dir}嗎?

謝謝

回答

0

我不認爲Tomcat配置文件中的默認環境變量是可用的。系統屬性,但是,。因此,如果您將變量添加爲系統屬性而不是環境變量,則應該可以工作。

如果你因爲某些原因絕對要使用環境變量,Tomcat文檔具有替代物業參考在它是可以被設置爲自定義Tomcat的行爲部分約System Properties

org.apache.tomcat .util.digester。 PROPERTY_SOURCE

將此設置爲實現org.apache.tomcat.util.IntrospectionUtils.PropertySource的類的完全限定名稱。需要有一個沒有參數的公共構造函數。

使用它來添加屬性源,當在Tomcat解析的XML文件中找到$ {parameter}表示的參數時,將會調用該屬性源。

+0

感謝NilsH我將探索Propery_source選項。 – 2013-04-11 14:49:58