在同一台Server上部署了两个web Application. web.xml 配置如下。
<!-- 配置加载log4j.xml文件路径 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!-- 配置log4j.xml变量 -->
<context-param>
<param-name>rootLevel</param-name>
<param-value>DEBUG</param-value>
</context-param>
<context-param>
<param-name>loggingLevel</param-name>
<param-value>INFO</param-value>
</context-param>
<!-- 配置log4j.xml监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
两个application log4j.properties 分别输出到不同的日志文件(simple1.log,simple2.log)。
log4j.appender.E.File=d:/log/simple1.log
log4j.appender.E.File=d:/log/simple2.log
陪之后,发现哪个Application先启动,就只会生成一个日志文件。比如simple2先启动,只会往simple2.log写,log.simple1. log不会有新日志。同一个Server其实同一个容器。必须单独配置唯一的webAppRootKey。问题得到解决,两个日志文件都能正常写入了。
<!--配置项目名simple1,两个项目必须不同-->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>simple1</param-value>
</context-param>
后来查一一下日志。其实后台有报错的。
Web app root system property already set to different value: 'webapp.root' = [/home/user/tomcat/webapps/simple1/] instead of [/home/user/tomcat/webapps/simple2/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!