2016-05-20 12 views
1

私は現在、必要な状況があります 1)外部log4j.propertiesを持っています 2)log4j.propertiesの場所はプロパティプレースホルダとしてweb.xmlに設定されていますプロパティの値がPOMから読み込まれます。 3).warが作成されたときにプレースホルダに値が設定されます。Eclipseに埋め込まれたTomcatのweb.xmlをフィルタリングするMaven

これまでのところ、アプリはlog4jをPOMで指定された場所に配置し、ログファイルを生成します。ただし、これは、アプリケーションがスタンドアロンのTomcatインスタンスに.warとしてデプロイされている場合にのみ機能します。次の要件は、Eclipseに埋め込まれたTomcatにそれを展開できることです。これはMavenが関与していない限りはわかります。埋め込まれたTomcatインスタンスにデプロイするときにweb.xmlにそのプロパティプレースホルダを設定させるように強制する方法はありますか?事前

アンガス

+0

解決方法を見つけましたか? – watery

答えて

0

そうで

おかげで、私は最終的に解決策を考え出すでした。以下の設定を含める:

のweb.xmlを

<listener> 
    <listener-class>org.springframework.web.util.Log4jConfigListener 
    </listener-class> 
</listener> 

<context-param> 
    <param-name>log4jConfigLocation</param-name> 
    <param-value>${log4j.properties.location}</param-value> 
</context-param> 

<context-param> 
    <param-name>log4jExposeWebAppRoot</param-name> 
    <param-value>false</param-value> 
</context-param> 

<context-param> 
    <param-name>log4jRefreshInterval</param-name> 
    <param-value>60000</param-value> 
</context-param> 

のcontext.xml:

<Parameter name="log4j.properties.location" value="file:/usr/local/etc/xxxxxxxxx/xxxxxxxxxxxxx/log4j.properties"/> 

そして、あなたが行ってもいいはずです。

関連する問題