Tomcat显示部署的应用程序名称而不是war文件

时间:2011-02-11 13:40:28

标签: tomcat logging

我在tomcat 6中部署了多个应用程序,这些应用程序被路由到不同的虚拟主机,因此它们都具有单独的上下文根,并命名为ROOT.war。当tomcat启动时,在catalina.out中我看到了:

INFO: Deploying web application archive ROOT.war
Feb 11, 2011 1:33:55 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive ROOT.war
Feb 11, 2011 1:33:56 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive ROOT.war
Feb 11, 2011 1:33:57 PM org.apache.catalina.startup.HostConfig deployWAR

应用程序日志被路由到不同的位置,我无法确定部署了哪些应用程序以及按什么顺序。

我想从war的web.xml而不是ROOT.war中看到应用程序名称。有没有人知道如何在不启用调试和混乱日志的情况下执行此操作?

1 个答案:

答案 0 :(得分:2)

Tomcat不支持有序的webapp部署(至少在版本5-6中) de jure 事实您可以在conf/server.xml内以所需顺序放置对不同Web应用的引用,并且它(可能)可以正常工作。然而,这可归类为黑客。这种方法的另一个缺点是你必须在server.xml中静态定义事物。

另一个替代方法是在每个webapp中创建一个单独的DeploymentInfoLogger(或任何命名的)类,其中logger使用此类的名称进行静态初始化。仅为此类启用调试级别(因此您不会获得大量不需要的日志数据)。将appender配置为与catalina.out相同(我想是ConsoleAppender?)。使此类成为上下文侦听器,并在webapp启动时记录有意义的内容。只有当您事先知道此Web应用程序将为某个特定虚拟主机提供服务时,这当然是可行的。如果没有,您可以使用一些本机Tomcat API从配置中确定这一点。

Sėkmės:)