2013-05-02 53 views
1

我們有幾個Tomcat 7實例安裝在不同的服務器上。我們有時會將基本相同的應用程序部署到不同的Tomcat(針對不同的客戶),唯一的區別是配置。爲了標準化日誌記錄位置等,我們試圖使應用程序「通用」,以便將war文件部署到Tomcat實例將自動連接它,以便我們不必記住更改應用程序客戶1,然後再爲客戶2等如何獲取Tomcat的logging.properties來識別我的Catalina變量?

無論如何,在每個Tomcat/conf文件夾中,我在catalina.properties文件的末尾添加了一些屬性。例如:現在

# custom logging 
log.base=c:/logs/tomcat/myapp 
log.file=MYAPP.log 

,在我應用程序的log4j.cfg文件,我有:

log4j.appender.R.File=${log.base}/${log.file} 

在我應用程序的myapp.cfg我:

logfile=${log.file} 

偉大的作品時,我部署。 Tomcat把它應該是的所有東西除了logging.properties文件。

該文件通常包含:

1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 

但我想改變${catalina.base}/logs用我自己的${log.base}變量。但Tomcat(或者也許是log4j?)不能識別這個。相反,它實際上在Tomcat根文件夾中創建了一個名爲「$ {log.base}」的目錄。

我讀過,你可以在setenv.bat文件中聲明自定義變量。我做到了,但仍然無法工作。

我該如何解決這個問題?

順便說一句,我正在使用Windows,Tomcat 7和Windows服務安裝(與GUI)。

感謝

回答

3

設置環境變量setenv.bat JAVA_OPTS。用這種方法你可以給java VM參數。在setenv.sh以下工作在Linux中:

出口JAVA_OPTS = 「 - Dlog.base = /日誌/ tomcat的/」

現在你應該可以使用$ {} log.base在logging.properties