1

我正在运行 JBoss 4.2.3.GA,并且有一个使用 Spring 和 Log4j 的 Web 应用程序。我已经设置了 Spring 的 Log4jConfigurer,但是由于 JBoss 的 log4j 文件不在类路径上,所以我遇到了问题。它位于 jboss.home/server/defaul/conf/jboss-log4j.xml。那么,如果不对 Log4jConfigurer 中的路径进行硬编码,如何让 Spring 使用 JBoss 的 log4j 文件?

4

2 回答 2

0

您通常不会通过应用程序修改 JBoss 的 log4j 配置,那是一种疯狂的做法。JBoss 在所有应用程序中使用共享配置。

但是,您可以以编程方式更改 log4j 的运行时配置,例如添加自定义附加程序或记录器。然而,这不是 Spring 的 Log4jConfigurer 的用途 - 您可以使用它来配置独立的 log4j 配置。

于 2009-06-30T20:50:38.653 回答
0

请回答您的问题:JBoss 通常会设置指向服务器目录和配置目录的附加系统属性。您应该能够从您的应用程序中访问它们,或者让它们从 spring 上下文中解析。

在您的情况下,应该可以访问${jboss.server.home.dir}/conf/jboss-log4j.xml

正如 skaffman 在评论中正确指出的那样,没有必要配置 Spring 来读取 JBoss 的 log4j 配置,除非您在包装中另外调整了某些内容。您只需要注意log4j.[properties,xml]类路径的根目录中没有任何内容,或者组件尝试“手动”配置 Log4J。

希望这可以帮助,
卡里姆

于 2009-07-06T07:34:24.393 回答