2

異なるサーバーに複数のTomcat 7インスタンスがインストールされています。基本的に同じアプリを (異なる顧客向けに) 異なる Tomcat に展開することがありますが、唯一の違いは構成です。ログの場所などを標準化するために、アプリを「ユニバーサル」にしようとしています。これにより、war ファイルを Tomcat インスタンスにデプロイするだけで自動的に接続され、アプリを変更することを覚えておく必要がなくなります。顧客 1、次に顧客 2 など。

とにかく、各フォルダーで、ファイル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 を使用) を使用しています。

ありがとう

4

1 に答える 1