WAR的外部log4j.xml文件

时间:2010-09-14 19:54:52

标签: tomcat log4j logging

要求就是这个......

一个问题,通常的地方似乎在你的/ WEB-INF / classes目录中,但是我遇到了问题。如果我将我的应用程序作为WAR文件发送,我就无法编辑它,这是一个真正的问题。

我们有3个WAR,我们使用tomcat 6.0.16部署了应用程序。我们想为每个war在外部目录中配置log4j.xml并从那里动态加载。

我真的不想使用“-Dlog4j.configuration = / Directory / log4j.xml”这个环境设置作为解决方案。因为它将成为默认值而非WAR特定。

有什么建议吗?感谢任何帮助...

1 个答案:

答案 0 :(得分:1)

我知道你提到你不想使用启动参数“-Dlog4j.configuration = / Directory / log4j.xml”但是你考虑过使用自定义参数,比如

-DappOneLog4jConfig=/directoy/file1.xml
-DappTwoLog4jconfig=/directory/file2.xml

然后在每个war文件中,您可以加载所需的log4j文件。 你可以在启动时加载的类中执行类似的操作。

if(System.getProperty("appOneLog4jConfig") != null){
      PropertyConfigurator.configure(System.getProperty("appOneLog4jConfig"));
} else {
      BasicConfigurator.configure();
      Logger.getRootLogger().setLevel(Level.INFO);
}

表示如果我指定了属性文件,请使用它。否则默认一切为Info。 这应该让您可以自由地为每个应用程序/ war文件设置log4j文件